收到邮递请求404错误:邮递员
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了收到邮递请求404错误:邮递员相关的知识,希望对你有一定的参考价值。
我试图向邮递员提出邮寄请求,但我收到404错误。SyntaxError: Unexpected token n in JSON at position 4<br> at JSON.parse
.我已经添加了 Content-Type: application/json
头,并在原始标签中定义了json体,这是url。http:/localhost:8000apisignup。...我不能进行这个帖子请求,也不能在浏览器中访问应用程序,因为我收到的是 cannot GET /api/signup
.
我怎么能解决这个问题?
控制器用户.js
const User = require('../models/user')
const { errorHandler } = require("../helpers/dbErrorHandler")
exports.signup = (req, res) => {
console.log("req.body", req.body)
// signs up new user
const user = new User(req.body)
user.save((err, user) => {
if(err) {
return res.status(400).json({
err: errorHandler(err)
})
}
res.json({
user
})
})
}
app.js
const express = require('express')
const mongoose = require('mongoose')
const morgan = require('morgan')
const bodyParser = require('body-parser')
const cookieParser = require('cookie-parser')
require('dotenv').config()
// import routes
const userRoutes = require('./routes/user')
// app
const app = express()
// connect db - first arg is url (specified in .env)
mongoose.connect(process.env.DATABASE, {
useNewUrlParser: true,
useCreateIndex: true
}).then(() => console.log('DB connected'))
// middlewares
app.use(morgan('dev'))
app.use(bodyParser.json())
// used to save users credentials
app.use(cookieParser())
// routes middleware
app.use('/api', userRoutes)
const port = process.env.PORT || 8000
app.listen(port, () => {
console.log(`Server is running on port ${port}`)
})
modelsuser.js
const mongoose = require('mongoose')
const crypto = require('crypto')
const uuidv1 = require('uuid/v1')
const userSchema = new mongoose.Schema ({
...
}, {timestamps: true})
userSchema.methods = {
encryptPassword: function(password) {
if (!password) return '';
// hashes password
try {
return crypto.createHmac('sha1', this.salt)
.update(password)
.digest('hex')
} catch (err) {
return ''
}
}
}
module.exports = mongoose.model("User", userSchema)
路由用户.js
const express = require('express')
const router = express.Router()
const { signup} = require('../controllers/user')
router.post('/signup', signup)
module.exports = router
404表示NOT Found。
可能是您的URL或方法有误
以下是你可以尝试诊断的内容。
- 检查服务器是否正在运行
- 检查你正在访问的端口和URL。
- 检查邮递员的方法 POST 和URL。
- 检查路由、路由文件,并与邮递员的URL进行匹配
这好像是两个不同的问题,对于POST请求,错误好像是你的JSON有效载荷中有一个无效的字符串,你的应用程序无法读取和解析。
第二个主要是由于路由没有找到,没有看你的 ./routes/user
文件,似乎有两种可能。
- 你有一个嵌套的路由
/user/...
. 如果是这样,请尝试通过以下方式访问你的api/api/user/signup
而不是/api/signup
- 你没有为你创建一个GET路由
signup
路径。通常情况下,注册是POST路径而不是GET
.
如果你能提供源代码的话,那将是最好的。./routes/user.js
我们才能正确回答这个问题。
404错误是一种HTTP状态码,意味着你试图到达的网站页面在他们的服务器上找不到。要明确的是,404错误表示虽然服务器本身是可以到达的,但显示错误的具体页面却无法到达。
确保你的索引是正确的,你的本地服务器是正常运行的。
以上是关于收到邮递请求404错误:邮递员的主要内容,如果未能解决你的问题,请参考以下文章
PUT 请求 404 未找到错误邮递员? Node.js 快递