nodejs——向另一个服务器发送文件

业务需要,需在客户本地建立一个服务,将本地的数据库文件发送到主服务器。

下面是本地服务代码:

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;

 

转载于:https://www.cnblogs.com/yourstars/p/6728765.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值