gpt4 book ai didi

node.js - 无法发布/用户/注册

转载 作者:太空宇宙 更新时间:2023-11-04 02:08:53 26 4
gpt4 key购买 nike

我正在尝试通过教程来学习 MEAN 堆栈,当我尝试使用 POSTMAN 测试 post 方法时,我坚持在某个点上,我已经搜索并尝试了很多方法,但还找不到答案。

代码是:app.js

const express = require('express'),
path = require('path'),
bodyParser = require('body-parser'),
cors = require('cors'),
passport = require('passport'),
mongoose = require('mongoose');

const users = require('./routes/users'),
config = require('./config/database');

//Connect to database
mongoose.connect(config.database);
//On Connection
mongoose.connection.on('connected', () => {
console.log('Connected to database : ' + config.database);
});
//On Error
mongoose.connection.on('error', (err) => {
console.log('Database error : ' + err);
});

const app = express();

//Port number
const port = 3000;

//Cors Middleware
app.use(cors());

app.use(express.static(path.join(__dirname, 'public')));

//Body Parser Middleware
app.use(bodyParser.json());

app.use('/users', users);

//Index route
app.get('/', (req, res) => {
res.send('Invalid response');
});
app.post('/', (req, res) => {
res.send('Invalid response');
})

//Start Server
app.listen(port, () => {
console.log('Server stated with port : ' + port);
});

路由代码:users.js

const express = require('express'),
passport = require('passport'),
jwt = require('jsonwebtoken'),
router = express.Router();

const User = require('../models/user');

//Register
router.post('/register', (req, res, next) => {
let newUser = new User({
name: req.body.name,
email: req.body.email,
username: req.body.username,
passowrd: req.body.passowrd
});

User.addUser(newUser, (err, user) => {
if (err) {
res.json({ success: false, msg: 'Failed to register user!' });
} else {
res.json({ success: true, msg: 'User Registered' });
}
});
});

module.exports = router;

模型代码:user.js

const mongoose = require('mongoose'),
bcrypt = require('bcryptjs'),
config = require('../config/database');

//User Schema
const userSchema = mongoose.Schema({
name: {
type: String
},
email: {
type: String,
required: true
},
username: {
type: String,
required: true
},
passowrd: {
type: String,
required: true
}
});

module.exports.addUser = function (newUser, callback) {
bcrypt.genSalt(10, (err, salt) => {
bcrypt.hash(newUser.passowrd, salt, (err, hash) => {
if (err) throw err;
newUser.passowrd = hash;
newUser.save(callback);
});
});
}

const User = module.exports = mongoose.model('User', userSchema);

postman 配置:

方法:POST

网址 http://localhost:3000/users/register

标题 键:内容类型, 值:应用程序/json

Body
{
"name": "Wai Lin Aung",
"email": "wailinaung@mail.com",
"username": "Wai Lin",
"passowrd": "123456"
}

postman 输出:

HTML

Cannot POST /user/register

JSON : Unexpected '<'

Terminal Log:

[nodemon] restarting due to changes...
[nodemon] starting `node app.js`
/Users/wailin/Documents/Projects/meanauthapp/app.js:41
app.post('/', (req,res))
^

ReferenceError: req is not defined
at Object.<anonymous> (/Users/wailin/Documents/Projects/meanauthapp/app.js:41:16)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
at Module.runMain (module.js:604:10)
at run (bootstrap_node.js:393:7)
at startup (bootstrap_node.js:150:9)
at bootstrap_node.js:508:3

更新日志:

[nodemon] restarting due to changes...
[nodemon] starting `node app.js`
Server stated with port : 3000
Connected to database : mongodb://localhost:/27017/meanauth
TypeError: User.addUser is not a function
at router.post (/Users/wailin/Documents/Projects/meanauthapp/routes/users.js:17:10)
at Layer.handle [as handle_request] (/Users/wailin/Documents/Projects/meanauthapp/node_modules/express/lib/router/layer.js:95:5)
at next (/Users/wailin/Documents/Projects/meanauthapp/node_modules/express/lib/router/route.js:137:13)
at Route.dispatch (/Users/wailin/Documents/Projects/meanauthapp/node_modules/express/lib/router/route.js:112:3)
at Layer.handle [as handle_request] (/Users/wailin/Documents/Projects/meanauthapp/node_modules/express/lib/router/layer.js:95:5)
at /Users/wailin/Documents/Projects/meanauthapp/node_modules/express/lib/router/index.js:281:22
at Function.process_params (/Users/wailin/Documents/Projects/meanauthapp/node_modules/express/lib/router/index.js:335:12)
at next (/Users/wailin/Documents/Projects/meanauthapp/node_modules/express/lib/router/index.js:275:10)
at Function.handle (/Users/wailin/Documents/Projects/meanauthapp/node_modules/express/lib/router/index.js:174:3)
at router (/Users/wailin/Documents/Projects/meanauthapp/node_modules/express/lib/router/index.js:47:12)
at Layer.handle [as handle_request] (/Users/wailin/Documents/Projects/meanauthapp/node_modules/express/lib/router/layer.js:95:5)
at trim_prefix (/Users/wailin/Documents/Projects/meanauthapp/node_modules/express/lib/router/index.js:317:13)
at /Users/wailin/Documents/Projects/meanauthapp/node_modules/express/lib/router/index.js:284:7
at Function.process_params (/Users/wailin/Documents/Projects/meanauthapp/node_modules/express/lib/router/index.js:335:12)
at next (/Users/wailin/Documents/Projects/meanauthapp/node_modules/express/lib/router/index.js:275:10)
at /Users/wailin/Documents/Projects/meanauthapp/node_modules/body-parser/lib/read.js:129:5

最佳答案

以下错误位于 app.js 中。

[nodemon] restarting due to changes...
[nodemon] starting `node app.js`
/Users/wailin/Documents/Projects/meanauthapp/app.js:41
app.post('/', (req,res))

据我所知,req、res 是来自express.Router() 的属性。但你只需在你的路由器文件中调用它,而不是在你的 app.js 中调用它

关于node.js - 无法发布/用户/注册,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43142707/

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