gpt4 book ai didi

javascript - 如何提取正文请求 node.js

转载 作者:可可西里 更新时间:2023-11-01 10:51:13 24 4
gpt4 key购买 nike

我刚刚开始学习 node.js (Express),我创建了一个与非常简单的 mongo 数据库通信的简单应用程序。我在名为“testDB”的数据库中有一个名为“Users”的集合。我在我的 node.js 应用程序中创建了我的骨架,并遵循“关注点分离”逻辑。

在我的 Controller 文件夹中,我有一个名为 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;

我创建了一个 postman 请求来探索如何提取我发送的正文数据。请求如下所示

在标题中我有 2 个键

  • 接受:application/json;charset=UTF-8
  • 内容类型:application/json

在正文中我有以下原始文本:

{
"Users": {
"First Name": "Ahmed",
"Last Name": "Rahim",
"Username": "rahima1",
"Passwoed": "secure"
}
}

根据前面的场景,我有几个问题:

  1. 如何从请求中提取正文。我试图深入研究“要求”但我找不到我要找的东西?
  2. 传递这样一个简单的密码是不好的,对吧?任何传递加密密码(也许是 sha)的建议?
  3. 请求本身有问题吗?

像你们这样的专家的任何旁注都会对我有很大帮助 :)

谢谢大家!!

最佳答案

您需要导入并要求 body-parser

npm install body-parser

var bodyParser = require('body-parser');
...
app.use(bodyParser.json());

关于javascript - 如何提取正文请求 node.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40033050/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com