如何解决为什么我的节点JS应用程序出现无效的速记属性初始化程序错误?
您好,您可以帮我吗?我正在尝试使用对象名称用户(其属性定义为模式)通过mongoose连接到mongo db。
user.js(用户模型)
//mongoose is necesary
const mongoose = require('mongoose');
let Schema = mongoose.Schema;
let usersSchema = new Schema({
name: {
type: String,required: [true,'name is required']
},email:{
type: String,'email is required']
},password:{
type: String,'password is required']
},img:{
type: String,},role:{
type: String,default: 'USER_ROLE'
},state:{
type: Boolean,default: true
},social:{
type: Boolean,default: false
}
});
//exports
module.exports = mongoose.model('User',usersSchema);
user.js(用户控制器)
/*
Endpoind for the user data*/
const express = require('express');
const User = require('../models/user_model')
const app = express()
/*************
** GET **
*************/
app.get('/usuarios',function (req,res) {
res.json('Hello World')
})
/*************
** POST ****
*************/
app.post('/usuarios',res) {
let body = req.body
let usuario = new User({
name = body.name,email = body.email,password = body.password,role = body.role
})
usuario.save((err,userDB) => {
// if error
if (err) {
return res.status(400).json({
ok: false,err
})
}
// if success
res.json({
ok: true,user: userDB
})
})
})
/*************
** PUT **
*************/
app.put('/usuarios/:id',res) {
let id = req.params.id
res.json({
id
})
})
/*************
** DELETE **
*************/
app.delete('/usuarios',res) {
res.json('Hello World')
})
/*
Exports
*/
module.exports = app;
和主文件server.js
// dependencies
require ('./config/config'); // inmediactly loaded
const mongoose = require('mongoose');
const express = require('express');
const bodyParser = require('body-parser');
const { json } = require('body-parser');
// declarations
const app = express()
// configuring body parser for express
// parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: false }))
// parse application/json
app.use(bodyParser.json())
// temporal para pasar por referencia las rutas de usuarip
app.use(require('./controllers/user'))
// monguse settings conection
mongoose.connect('mongodb://localhost:27017/sales',{useNewUrlParser: true,useUnifiedTopology: true},(err,resp)=>{
if (err) throw new err;
console.log('connected to mongodb')
}
);
app.listen(process.env.PORT,() => {
console.log('runing on port:',process.env.PORT );
})
,还有package.json
{
"name": "node_repaso","version": "1.0.0","description": "a review poject","main": "index.js","scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},"keywords": [
"review"
],"author": "Gerardo Guevara","license": "ISC","dependencies": {
"body-parser": "^1.19.0","express": "^4.17.1","mongoose": "^5.9.28"
}
}
但我不知道为什么会收到此错误
解决方法
更改
let usuario = new User({
name = body.name,email = body.email,password = body.password,role = body.role
})
收件人
let usuario = new User({
name : body.name,email : body.email,password : body.password,role : body.role
})
您要分配值,而不是将json数据传递给用户模型
,您无法使用需要使用=
的{{1}}为属性分配值
但是,这是一种更清洁的方法:
:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。