我是第一次尝试nodejs。我正在使用它与python shell。我正在尝试使用Post request
将文件从一台PC传输到另一台PCapp.js(服务器PC)
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.post('/mytestapp', function(req, res) {
console.log(req)
var command = req.body.command;
var parameter = req.body.parameter;
console.log(command + "|" + parameter)
pyshell.send(command + "|" + parameter);
res.send("POST Handler for /create")
});
python文件从(客户端PC)发送文件
f = open(filePath, 'rb')
try:
response = requests.post(serverURL, data={'command':'savefile'}, files={os.path.basename(filePath): f})
我使用fiddler并且请求似乎包含客户端PC上的文件,但我似乎无法在Server PC上获取该文件。如何提取和保存文件?是因为我缺少标题吗?我该怎么用?感谢
答案 0 :(得分:0)
我会猜测并说你根据问题的语法使用了Express。 Express不提供开箱即用的文件上传支持。
您可以使用multer
或busboy
中间件套件添加multipart
上传支持。
实际上很容易做到这一点,这里有一个带有multer的样本
const express = require('express')
const bodyParser = require('body-parser')
const multer = require('multer')
const server = express()
const port = process.env.PORT || 1337
// Create a multer upload directory called 'tmp' within your __dirname
const upload = multer({dest: 'tmp'})
server.use(bodyParser.json())
server.use(bodyParser.urlencoded({extended: true}))
// For this route, use the upload.array() middleware function to
// parse the multipart upload and add the files to a req.files array
server.port('/mytestapp', upload.array('files') (req, res) => {
// req.files will now contain an array of files uploaded
console.log(req.files)
})
server.listen(port, () => {
console.log(`Listening on ${port}`)
})