Javascript NodeJS res.body仅在一个路由器上未定义
我正在使用swift向nodeJS服务器发送数据。 以下是Swift代码:Javascript NodeJS res.body仅在一个路由器上未定义,javascript,node.js,express,body-parser,Javascript,Node.js,Express,Body Parser,我正在使用swift向nodeJS服务器发送数据。 以下是Swift代码: var data:[String:String] = [:] data["ABC"] = "nothing" let req = HTTPRequest(url_to_request: "https://xxx.xxx.xx.x/update", method: HTTPRequest.HTTPRequestMethod.post, data: Profile.toJSON(dict: data)) 以下是节点: co
var data:[String:String] = [:]
data["ABC"] = "nothing"
let req = HTTPRequest(url_to_request: "https://xxx.xxx.xx.x/update", method: HTTPRequest.HTTPRequestMethod.post, data: Profile.toJSON(dict: data))
以下是节点:
console.log("Server is up!");
var bodyParser = require('body-parser');
var express = require('express');
var MongoClient = require('mongodb').MongoClient,
assert = require('assert');
var http = require('http');
var https = require('https');
var fs = require('fs');
var bcrypt = require('bcryptjs');
var sslOptions = {
key: fs.readFileSync('key.pem', 'utf8'),
cert: fs.readFileSync('cert.pem', 'utf8'),
passphrase: 'phrase',
rejectUnauthorized: false
};
var app = express();
//Variables:
var httpPort = 8888;
var httpsPort = 8443;
app.use(bodyParser.urlencoded({
extended: false,
limit: '20mb'
}));
app.use(bodyParser.json({
limit: '50mb'
}));
// parse application/json json size limit
// parse application/x-www-form-urlencoded
// setup server
app.set("port_https", httpsPort);
//check secure connection
app.all("*", function(req, res, next) {
console.log("Secure connection: " + req.secure);
if (req.secure) {
return next();
}
res.redirect("https://" + req.hostname + ":" + app.get("port_https") + req.url);
});
// add User
app.post('/register', register);
//signIn
app.post('/login', logIn);
//Update user's profile details.
app.post('/update', updateProfile);
// Request profile details.
app.post('/profile', profileRequest);
function updateProfile(req, res) {
console.log(res.body); // ---> undefined
}
当我发送一个带有数据的post请求以登录、配置文件、注册路由器时,res.body运行良好。但当我出于某种原因发送数据进行更新时,req.body未定义:
错误:
Server: Secure connection: true
Server: undefined #----> log of res.body
Server: Connected successfully to databse!
stderr: /home/asaf/NodeJS/IBQA/IBQA_Server/node_modules/mongodb/lib/mongo_client.js:350
throw err
^
TypeError: Cannot read property 'ABC' of undefined
at /*****/server.js:92:33
at connectCallback (*****/mongo_client.js:428:5)
at /*****/node_modules/mongodb/lib/mongo_client.js:347:11
at nextTickCallbackWith0Args (node.js:419:9)
at process._tickCallback (node.js:348:13)
closing code: 1
如果
req
变量中存在请求,则使用res
发送响应。如果req
变量中有res
用于发送响应,请尝试console.log(req.body)
您的请求。试试console.log(req.body)
updateProfile是否有function(req,res){…}
结构?是的,我现在就添加它。它可能是一个包吗?我不知道它如何与swift一起工作,但是在执行post
操作时,您必须在form
element中指定name
input元素的attributes属性。我将它作为“application/json”发送,它是否updateProfile
具有函数(req,res){…}
结构?是,我现在就添加它。它可能是一个包吗?我不知道它如何与swift一起工作,但在执行post
时,您必须在表单元素中指定input
元素的属性。我将它作为“application/json”发送。愚蠢的错误是编程xD的祸根。如果你愿意,请接受答案:)你能帮我投票吗?这样我就能提交更多的帖子了……愚蠢的错误是编程xD的祸根。如果你愿意,请接受答案:)你能帮我投票吗?这样我就能提交更多的帖子了。。。