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