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

下面是本地服务代码:

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;

nodejs——向另一个服务器发送文件的更多相关文章

  1. Unix lrzsz命令 上传本地文件到服务器 / 发送文件到客户端

    第三方教程:https://www.jb51.net/article/73690.htm 安装命令: $ yum install lrzsz 本地上传文件到服务器,如果是xshell,直接拖拽文件进入 ...

  2. Linux从一个服务器拷贝文件到另一个服务器上

    ***复制文件夹到另外一个服务器scp -r tmp root@114.215.80.12:/work/temp输入密码 scp -r customer root@114.215.80.12:/hom ...

  3. Linux跨服务器发送文件

    在要发送的文件所在的目录下,输入下列命令 第一种: scp -r test.jar root@127.0.0.1:$(pwd)/test.jar 其中root为服务器账户名,127.0.0.1为要发送 ...

  4. 使用wininet向FTP服务器发送文件

    .h #pragma once #include <windows.h> #include <tchar.h> #include <string> #include ...

  5. jquery用formada发送文件到服务器

    var formdata = new FormData(); formdata.append("file", $("#Input")[0].files[0]); ...

  6. 使用服务器参数文件(SPFILE)管理初始化参数

    传统上,Oracle数据库的初始化参数存储在文本初始化参数文件中.为了更好的可管理性,您可以选择在二进制服务器参数文件中维护初始化参数,该文件在数据库启动和关闭期间保持不变.本节介绍服务器参数文件,并 ...

  7. nodejs 简单的搭建一个服务器

    前言: nodejs 主要是后台语言  node 是在终端运行的,所以他可以进行 dos 命令 模块 自定义 JavaScript 是前台语言 nodejs 是 也是使用我们的 JavaScript ...

  8. 详解:基于WEB API实现批量文件由一个服务器同步快速传输到其它多个服务器功能

    文件同步传输工具比较多,传输的方式也比较多,比如:FTP.共享.HTTP等,我这里要讲的就是基于HTTP协议的WEB API实现批量文件由一个服务器同步快速传输到其它多个服务器这样的一个工具(简称:一 ...

  9. nodejs向远程服务器发送post请求----融云Web SDK/客户端获取token

    最近要用到一个叫融云的及时通讯的SDK,在获取token这个步骤的时候有点卡顿,以防以后碰到类似的问题,再此记录一下. 客户端通过融云 SDK 每次连接服务器时,都需要向服务器提供 Token,以便验 ...

随机推荐

  1. opencv-python教程学习系列12-图像阈值

    前言 opencv-python教程学习系列记录学习python-opencv过程的点滴,本文主要介绍图像阈值/二值化,坚持学习,共同进步. 系列教程参照OpenCV-Python中文教程: 系统环境 ...

  2. 任务三 简单程序测试及 GitHub Issues 的使用

    我提交的Issue 我被提出的Issue 在使用Issue的过程中我发现提出的Issue不能指派任务人和问题类型,被提出的Issue可以. 碰到最多的问题是测试程序的过程中, 比如用户未按指定格式输入 ...

  3. Pr学习日记

    1.http://tieba.baidu.com/p/4102775256   2.素才,编辑制作视频,视频输出    3. 启用新建保存:     启用:双击    新建项目:名称(第一节课),位置 ...

  4. poj1797 最短路

    虽然不是求最短路,但是仍然是最短路题目,题意是要求1到N点的一条路径,由于每一段路都是双向的并且有承受能力,求一条路最小承受能力最大,其实就是之前POJ2253的翻版,一个求最大值最小,一个求最小值最 ...

  5. mongo dos操作

    https://www.cnblogs.com/beileixinqing/p/8241822.html 基础1 https://blog.csdn.net/superjunjin/article/d ...

  6. java8 array、list操作 汇【4】)- Java8 Lambda表达式 函数式编程

    int tmp1 = 1; //包围类的成员变量 static int tmp2 = 2; //包围类的静态成员变量 //https://blog.csdn.net/chengwangbaiko/ar ...

  7. FabricExpress.net supply high quality quilting fabric

    FabricExpress is a company specializing in high quality custom t-shirts,custom fabric,senior handmad ...

  8. ImageCollection

    https://documentation.devexpress.com/#WindowsForms/clsDevExpressUtilsImageCollectiontopic The collec ...

  9. ASP.NET MVC Area 的使用

    MVC提供Area机制,在同一个项目之内就能够切割出不同的ASP.NET MVC网站. 插入:首先在相同的位置,比如说同一个文件夹(如:Controllers)是不能创建俩个相同名称的文件(如:Hom ...

  10. selenium(一)--selenium 家族

    2015-12-16 23:17:04 QTP mercury 是商业的,单词意思是水银,而selenium 是开源的,单词意思是硒,有些相对的意思. 1.selenium ide selenium ...