为啥我的节点 JS 应用程序出现 Invalid shorthand property initializer 错误?
Posted
技术标签:
【中文标题】为啥我的节点 JS 应用程序出现 Invalid shorthand property initializer 错误?【英文标题】:Why am I getting an Invalid shorthand property initializer error on my node JS app?为什么我的节点 JS 应用程序出现 Invalid shorthand property initializer 错误? 【发布时间】:2020-12-01 20:17:46 【问题描述】:您好,社区您能帮帮我吗?我正在尝试使用对象名称用户将其属性定义为模式,通过 mongoose 连接到 mongo db。
我有 3 个文件,这是我的项目结构
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,
required: [true, 'email is required']
,
password:
type: String,
required: [true, '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', function (req, 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', function (req, res)
let id = req.params.id
res.json(
id
)
)
/*************
** DELETE **
*************/
app.delete('/usuarios', function (req, 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"
但我不知道为什么会出现此错误
【问题讨论】:
请确保构造一个minimal reproducible example。请注意,所有这三个词都很重要:它应该只是一个示例,您不应该发布整个实际代码,而应该创建一个简化的示例来演示您的问题。此外,它应该是minimal,即它不应该包含证明问题所必需的任何内容。 (大多数初学者问题可以用不到 5 行简单的代码来演示。)而且它应该是reproducible,这意味着如果我复制并粘贴并运行代码,我应该会看到与您完全相同的问题见。 【参考方案1】:改变
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 数据传递给用户模型
【讨论】:
【参考方案2】:你不能用=
给属性赋值,你需要使用:
但是这里有一种更简洁的方法:
let name, email, password, role = req.body;
let usuario = new User(
name,
email,
password,
role
)
【讨论】:
以上是关于为啥我的节点 JS 应用程序出现 Invalid shorthand property initializer 错误?的主要内容,如果未能解决你的问题,请参考以下文章
当我使用节点启动机器人时,为啥 discord.js 模块出现错误?
为啥 Application.Wait 会出现编译错误:“Invalid Qualifier”
为啥此查询中出现错误“ORA-00904: invalid identifier”?
使用 oAuth 和 youtube 进行身份验证时,总是出现错误:invalid_grant on 2nd auth attempt,为啥?
为啥手机上不了百度网、只显示英文gateway received an invalid response from the upstream gateway