[英]How to Extract body request node.js
我刚刚开始学习node.js(Express),并创建了一个与非常简单的mongo数据库通信的简单应用程序。 我在名为“ testDB”的数据库中有一个名为“用户”的集合。 我在node.js应用程序中创建了骨架,然后遵循“关注分离”逻辑。
在我的控制器文件夹中,有一个名为usersController的子文件夹。 在该子文件夹中,有2个.js文件,一个是usersControllers.js,另一个是usersRoutes.js。
在usersRoutes.js内部,有以下代码:
"use strict";
var express = require('express');
var router = express.Router();
// require the controller here
var usersController = require("./usersController.js")();
router
.get('/', usersController.getAllUsers)
.post('/', usersController.createUser);
module.exports = router;
如您所见,我正在usersController.js内部调用一个名为“ createUser”的函数(工厂)。 该函数的编写方式如下:
"use strict";
var MongoClient = require('mongodb').MongoClient;
var usersController = function(){
var getAllUsers = function(req, res){
MongoClient.connect('mongodb://localhost/testDB', function(err, db){
if(err){
throw err;
}
db.collection('Users').find().toArray(function(err, doc){
if(err){
throw err;
}
else{
return res.status(200).json(doc);
db.close();
}
});
});
};
var createUser = function (req, res) {
MongoClient.connect('mongodb://localhost/testDB', function(err, db){
console.log(req.body);
db.close();
});
};
return {
getAllUsers: getAllUsers,
createUser: createUser
};
};
module.exports = usersController;
我创建了一个邮递员请求,以探索如何提取我发送的身体数据。 该请求如下
在标题中,我有2个键
在正文中,我有以下原始文本:
{
"Users": {
"First Name": "Ahmed",
"Last Name": "Rahim",
"Username": "rahima1",
"Passwoed": "secure"
}
}
基于前面的场景,我有几个问题:
任何旁注将对像你们这样的专家提供很多帮助:)
谢谢你们!!
我阅读了评论等,并意识到您还没有找到解决方案。
我似乎无法真正找到您的实际错误,但想提供一些代码示例,它可能会帮助您自己找到它。
顺便说一句,在您发送的对象中,我不会用大写的“ U”写“ Users”,而只会写“ users”。
所以可以说我们有这个路由器文件,可以是您的createUser。 它看起来应该像这样:
router.post('createUser', function (req, res) {
var users = req.body.users;
res.json(users);
});
这应该只发送您发送的内容:-)在开始与数据库对话之前,请尝试执行此操作。 这样,您可以轻松确认发送的内容是服务器收到的内容。 希望对您有所帮助,如果您还有其他问题,我很乐意为您提供帮助。
您需要导入并需要正文解析器
npm install body-parser
和
var bodyParser = require('body-parser');
...
app.use(bodyParser.json());
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.