var exec = require('child_process').exec;
var request = require('request');
var fs = require('fs');
exec('./mysqlout.bat', function (err, stdout, stderr) {
if (err) {
console.error(err);
return;
request.post('http://120.11.xx.19:3000/upload', {
formData: {
title: 'upload sqlfile',
description: 'Sent on ' + new Date(),
is_public: 1,
sqlfiles: fs.createReadStream('f:/beijian.sql')
json: true
}, function(err, res, body) {
console.log('返回: ' + body);
return;
远程端主服务代码:
//express框架
app.js:
//引入copyDB文件
var copyDB = require('./routes/copyDB');
//新建路由
app.use('/upload', copyDB);
codyDB.js:
var express = require('express');
var router = express.Router();
var debug = require('debug')('Web:server');
var MULTIPARTY = require('multiparty');
var exec = require('child_process').exec;
var FS = require('fs');
var CONFIG = require('../config');
var copyDB = function(req, res, next) {
//接收文件的方式用multiparty包
var form = new MULTIPARTY.Form({
uploadDir: "./appData/sqlFile/"// 接收文件后存储的路径,文件名是一串字符串,下面用fs.rename方法改名
form.parse(req, function(err, fields, files) {
if (err) {
debug("upload failed!" + err);
res.send('upload failed!');
return;
} else {
debug('upload success!');
res.send('upload success!');
var inputFile = files.sqlfiles[0];
var uploadedPath = inputFile.path;
var dstPath = './appData/sqlFile/' + 'new' + '.sql';
FS.rename(uploadedPath, dstPath, function(renameerr) {
if (renameerr) {
debug('rename error: ' + err);
return;
} else {
debug('rename ok');
router.post('/', copyDB);
module.exports = router;