0
下面的代码是我的Node.js上传文件。此代码工作正常,可以从客户端上传任何文件,但上传后,我无法获取上传状态结果。例如,在Node.js上传文件后,我无法将上传结果发送给客户端。NodeJs简单的上传文件不会返回正确的结果
var socket = require('socket.io');
var express = require('express');
var app = express();
var server = require('http').createServer(app);
var io = socket.listen(server);
var port = process.env.PORT || 3000;
var mysql = require('mysql');
var multer = require('multer');
var connection = mysql.createConnection({
host: 'localhost',
user: 'root',
password: 'a',
database: 'signal'
});
var storage = multer.diskStorage({
destination: function (req, file, callback) {
callback(null, './uploads');
},
filename: function (req, file, callback) {
callback(null, req.params.storeId);
}
});
var upload = multer({storage: storage}).single('userPhoto');
app.post('/newVitrine/:storeId/:userId', function (req, res) {
upload(req, res, function (err) {
if (err) {
res.send({'result': 0});
console.log({'result': 0});
} else {
res.send({'result': 1});
console.log({'result': 1});
}
});
});
server.listen(port, function() {
console.log('Server listening at port %d', port);
});
客户应该得到的JSON对象为{'result': 1}
,而是我得到长JSON对象和result
不在此。
我读的文章,但那不我的问题,我想作为Android设备发送简单的json到客户端 –
因为在您的路由执行之前,响应已经发送。您正尝试发送第二个回复。你应该使用成功事件。 – serkan
我已经用工作代码更新了我的答案,您的问题可能是上传字段名称,您期望“userPhoto”但没有提供给我们表格,所以我不能准确地说。我将其更改为“上传”并更新了代码,并且工作正常。 – serkan