【发布时间】:2015-08-12 17:13:07
【问题描述】:
我正在使用如下所示的角度 $http 发布请求向服务器提交表单
$scope.fileUp = function(){
var formda = new FormData();
for(var key in $scope.formval)
{
console.log(key, $scope.formval[key]);
formda.append(key, $scope.formval[key])
}
$http.post("/upload",formda, {
transformRequest : angular.indentity,
header : {'Content-Type' : undefined }
}).success(function(data){
console.log(data)
})
}
在我的节点服务器上,代码如下所示
var express = require("express");
var bodyParser = require("body-Parser");
var multer = require("multer");
var methodOverride = require('method-override');
var session = require('express-session');
var app = express();
app.use(express.static(__dirname + "/public"));
app.use(methodOverride());
app.use(session({ resave: true, saveUninitialized: true, secret: 'uwotm8' }));
app.use(bodyParser.raw({limit: '150mb'}));
app.use(bodyParser.urlencoded({limit: '150mb', extended: true}));
app.use(multer({dest : __dirname + '/public/Epub/'}))
app.post("/upload",function(request,response){
console.log(request.body)
console.log(request.files)
response.json({name : "a"});
})
app.listen(8080);
console.log("server running");
请求和响应效果很好。我收到 response.json({name : "a"});来自 post 方法的请求成功。
问题出在节点服务器console.log(request.body)上, console.log(request.files) 返回空 {} 。如何在 post 请求中接收表单数据。
我在这里做错了。我是节点 js 的新手...
【问题讨论】:
-
但是你的“formda”不是空的吧?
-
是的,它不为空
-
所以最后没有一个答案是正确的?没有接受或赞成的答案。如果您同时找到了解决方案,那么您应该完全删除此帖子,因为它不会为 SO 添加任何价值。
标签: javascript angularjs node.js