Моя проблема
Я пытаюсь написать страницу регистрации / входа в систему node.js, используя express. js. Я решил разделить маршруты и инициализацию приложения на два файла. Когда я отправляю запрос POST на localhost:3000/register
с данными {"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.body
и req.body.username
.