express使用post请求报错404,问题不知道出在了哪里。。。新手求助

mac2024-11-23  58

server.js

const express = require('express') const mongoose = require('mongoose') const bodyParser = require('body-parser') const app = express() const users = require('./routes/api/users') const db = require('./config/keys').mongoURI mongoose.connect(db) .then(() => { console.log('Mongodb connect!') }) .catch(err => { console.log(err) }) app.get('/', (req, res) => { res.send('hello world!') }) app.use(bodyParser.urlencoded({ extended: false })) app.use(bodyParser.json()) // 使用routes app.use('/api/users', users) const port = process.env.PORT || 5000 app.listen(port, () => { console.log(`Server running on port ${port}`) })

keys.js

module.exports={ mongoURI:'mongodb+srv://s15131199500:songenying0428@cluster0-r473n.mongodb.net/test?retryWrites=true&w=majority', secretOrKey:'secret' }

User.js

const mongoose =require('mongoose') const Schema=mongoose.Schema const UserSchema=new Schema({ name:{ type:String, required:true }, email:{ type:String, required:true }, password:{ type:String, required:true }, avatar:{ type:String, required:true }, date:{ type:Date, default:Date.now } }) module.exports= User = mongoose.model('users',UserSchema)

users.js

const express = require('express') const router = express.Router() const User = require('../../models/User') const bcrypt = require('bcryptjs') const gravatar = require('gravatar') const jwt = require('jsonwebtoken') const keys = require('../../config/keys') router.get('/test', (req, res) => { res.json({ msg: 'login works!' }) }) router.post('/register', (req, res) => { console.log(req.body) User.findOne({ email: req.body.email }) .then((user) => { if (user) { return res.status(400).json({ email: '邮箱已被注册' }) } else { var url = gravatar.url('req.body.email', { s: '200', r: 'pg', d: 'mm' }); const newUser = new User({ name: req.body.name, email: req.body.email, password: req.body.password, avatar }) // 密码加密 bcrypt.genSalt(10, function (err, salt) { bcrypt.hash(newUser.password, salt, (err, hash) => { if (err) throw err newUser.password = hash newUser.save() .then(user => res.json(user)) .catch(err => console.log(err)) }); }); } }) }) router.post('/login', (req, res) => { const email = req.body.email const password = req.body.password // 查询数据库 User.findOne({ email }) .then((user) => { // 如果不存在返回404 用户不存在 if (!user) { return res.status(404).json({ email: '用户不存在' }) } // 存在进行密码匹配 bcrypt.compare(password, user.password) .then(isMatch => { if (isMatch) { // 定义规则 const rule={id:user.id,name:user.name} // jwt.sign("规则","加密名字","过期时间","箭头函数") jwt.sign(rule,key.secretOrKey,{expiresIn:3600},(err,token)=>{ if (err) throw err res.json({ success:true, token:"mrsong"+token }) }) // 如果匹配成功,success // res.json({ msg: 'success' }) } else { // 如果匹配不成功,返回400,密码错误 return res.status(400).json({ password: '密码错误' }) } }) }) }) module.exports = router

地址 http://localhost:5000/api/users/register 地址 http://localhost:5000/api/users/login 全部报错404! 新手不知道问题所在,求大神指导。万谢!

最新回复(0)