nodejs导入模块实现文件服务器

nodejs目录结构

这里是nodejs的exe目录

 nodejs的模块都在这个路径下node_modules\npm\node_modules,使用npm install pagename安装的模块都在这,可执行的文件在node_modules\npm\node_modules\.bin中,可以把这个路径加到环境变量中。

js文件如果引用到了模块需要在js相同目录下存在node_modules文件夹,并且里面包含模块。

server.js代码

var express = require('express');
var app = express();
var multer = require('multer');
var http = require('http');

app.get('/', function (req, res) {
    res.send('Hello World!');
});
app.use(express.static('public'));


var storage = multer.diskStorage({
    destination: function (req, file, cb) {
        // 文件上传成功后会放入以下的文件夹
        cb(null, './public/FileServer/uploads')
    },
    filename: function (req, file, cb) {
        // 设置文件的名字为其原本的名字,也可以添加其他字符,来区别相同文件,例如file.originalname+new Date().getTime();利用时间来区分
        cb(null, new Date().getTime() + file.originalname)
    }
});
var upload = multer({
    storage: storage
});

app.post('/FileServer/fileupload', upload.single('file'), function (req, res, next) {
    console.log('fileserver fileupload\r\n');
    res.end(req.file.originalname);
});

var server = app.listen(8080, function () {
    var host = server.address().address;
    var port = server.address().port;

    console.log('file server listening at http://%s:%s\r\n', host, port);
});

这里引用了express模块,可以把public目录映射到服务器上,里面的文件可以通过get方式直接获取下载等。这里的multer模块可以支持上传文件,也可以同时上传多个文件upload.array。这样就可以实现文件服务器了。

processes.json代码

{
  "apps": [
    {
      "name": "file server",
      "cwd": "",
      "script": "server.js",
      "log_date_format": "YYYY-MM-DD HH:mm Z",
      "error_file": "log/node-app/node-app.stderr.log",
      "out_file": "log/node-app.stdout.log",
      "pid_file": "pids/node-geo-api.pid",
      "instances": 6,
      "min_uptime": "1s",
      "max_restarts": 10,
      "max_memory_restart": "1M",
      "cron_restart": "1 0 * * *",
      "watch": false,
      "merge_logs": true,
      "exec_interpreter": "node",
      "exec_mode": "cluster_mode",
      "autorestart": false,
      "vizion": false
    }
  ]
}

这个是pm2的启动文件,安装pm2模块,使用命令pm2 start processes.json就可以开启服务。

参考

express框架实现文件上传服务器_江上一条鱼的博客-CSDN博客_express 文件服务器

PM2 部署 nodejs 项目 - 小白~- - 博客园

PM2介绍及简易使用手册 – 十三月

猜你喜欢

转载自blog.csdn.net/qq_41863100/article/details/121919007