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

下面是本地服务代码:

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. java 百分比显示Double类型数值

    DecimalFormat percent = new DecimalFormat("0.00%"); completed_num = (double) involvedTask_ ...

  2. 推荐六个在线生成网址二维码的API接口

    现在很多大网站都有这样的一个功能,使用手机扫描一下网页上的二维码便可快速在手机上访问网站.想要实现这样的功能其实很简单,下面麦布分享几个在线生成网址二维码的API接口.都是采用http协议接口,无需下 ...

  3. WCF 采用net.tcp协议实践(转)

    概述 与Socket相比,WCF真是爽得不得了,其基本指导思想为SOA——面向服务. 其基本配置在于ABC(Address,Binding,Contract),通常,只要这三个因素配置对了,那么,基本 ...

  4. toString() toArray() 等to方法

    1.toString()方法toString()方法是把对象转成String类型的 println(Ojbect object)的方法他会自动调用被打印对象的toString方法,所以其实你的Syst ...

  5. SocketIO4Net.Client

    Project Description SocketIO4Net.Client Update as of 11/02/2013 A develop branch is up at https://gi ...

  6. JMeter分布式部署的大致步骤以及误区解释

    master和slave机要在同一网段内,才能做分布式(Jmeter要配环境变量,这样不用手动起server) 分布式不成功,解决方案: 1.master端和slave端要ping通 2.ping通后 ...

  7. Hadoop之 Balancer平衡速度

    1. dfs.datanode.max.transfer.threads 修改dfs.datanode.max.transfer.threads=4096 (如果运行HBase的话建议为16384), ...

  8. 修改oracle系统参数spfile导致数据库无法启动解决

    错误示范: SQL> alter system set nls_date_format='yyyy-mm-dd 24hh:mi:ss' scope=spfile;System altered.我 ...

  9. JUC线程池之 线程池的5种状态:Running, SHUTDOWN, STOP, TIDYING, TERMINATED

    线程池有5种状态:Running, SHUTDOWN, STOP, TIDYING, TERMINATED. 线程池状态定义代码如下: private final AtomicInteger ctl ...

  10. spring答题

    ioc 依赖注入:通过注入的方式实例化对象,不再直接new对象了,交给spring容器进行管理和维护 控制反转:实例化对象的控制权交给了spring容器,而不再是某个单独的类,控制权发生了变更 作用: ...