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

下面是本地服务代码:

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. OK335xS canutils deal with compile error

    /************************************************************************************** * OK335xS ca ...

  2. 小程序api请求层封装(Loading全局配置)

    前言 小程序开发,没有vue中的axios那么好使,请求层的封装需要自己来搞. 当然请求层的配置少不了loading,这里索性也就将loading做一个配置,避免以后重复造轮子 请求封装 小程序中有封 ...

  3. 值得收藏的批处理程序 - imsoft.cnblogs

    文件强力删除.bat @echo off @echo 文件马上被强制删除 @echo 确定吗? pause DEL /F /A /Q \\?\%1 RD /S /Q \\?\%1 虚拟Wi-Fi.ba ...

  4. iTween的用法总结

    Unity3D插件-iTween的基本用法 本文提供全流程,中文翻译.Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) 1 Introd ...

  5. linux中grep用法(“或”、“与”)

    1.普通用法 grep keyword 若果keyword中有空格 grep "keyword" 例如: ls | grep mp4 2.“与”操作(其实就是多次筛选) grep ...

  6. .NET 中什么样的类是可使用 await 异步等待的?

    我们已经知道 Task 是可等待的,但是去看看 Task 类的实现,几乎找不到哪个基类.接口或者方法属性能够告诉我们与 await 相关. 而本文将探索什么样的类是可使用 await 异步等待的? D ...

  7. 自己一下午练习Js的代码

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. Array.prototype.slice.call(arguments)探究

    Array.prototype.slice.call(arguments)能将具有length属性的对象转成数组 首先,slice有两个用法,一个是String.slice,一个是Array.slic ...

  9. mibox connections

    tcp        0      0 :::52549                :::*                    LISTEN      4398/net.myvst.v2:mt ...

  10. let、var、const区别(表格比较)

    let.var.const区别(表格比较): 区别项 let var const 作用域 块级作用域 全局作用域或函数作用域 块级作用域 是否有变量提升 无 有 无 是否可重复声明 不可 可以 不可 ...