请求项在POST上为空,但有数据记录,但是记录请求显示请求项存在]]

问题描述 投票:0回答:1
我的问题

我正在尝试使用express.js在node.js中编写一个注册/登录页面。我决定将路由和应用初始化分为两个文件。当我将带有数据localhost:3000/register的POST请求发送到{"username":"xyz","password":"xyz"}时,请求对象具有属性主体。但是,当我尝试访问此属性时,我无法定义。

我当前的代码

// app.js // Load express and define port const express = require('express'); const app = express(); const port = 3000; // App Configurations app.use(express.json()) // Load Routes var registerRouter = require('./controllers/register.js'); // Use Routes app.use('/register', registerRouter); // Start App app.listen(port, () => console.log(`Example app listening on port ${port}!`));

// controllers/register.js
// requires
var argon2i = require('argon2-ffi').argon2i;
var bodyParser = require('body-parser');
var {Database, Model} = require('mongorito');
var crypto = require('crypto')
var Promise = require('bluebird');
var randomBytes = Promise.promisify(crypto.randomBytes);
var express = require('express');
// define router
var router = express.Router();
// Mongo Connection
const db = new Database('localhost/test', { 
    reconnectTries: 5 
});
// Models
class User extends Model {}
// Register Models
db.register(User);
// Routes
router.post('/', async (res, req) => {
    console.log(req.body);
    if(!req.body) return req.sendStatus(400); 
    const username = req.body.username;
    const salt = randomBytes(32); 
    const password = argon2i.hash(req.body.password, salt);
    var user = new User({
        username: username,
        password: password,
        salt: salt
    });
    await user.save;
    res.send("User Created");
});
// Disconnect From Database
db.disconnect;
//export router
module.exports = router;
我的预期结果

我希望能够访问req.bodyreq.body.username

我的问题是我试图使用express.js在node.js中编写一个注册/登录页面。我决定将路由和应用初始化分为两个文件。当我向本地主机发送POST请求时:3000 / ...

node.js express post
1个回答
0
投票
您的代码中有一个小问题。 router.post调用的第一个参数是req,第二个参数是res
© www.soinside.com 2019 - 2024. All rights reserved.