【发布时间】:2020-12-01 20:17:46
【问题描述】:
您好,社区您能帮帮我吗?我正在尝试使用对象名称用户将其属性定义为模式,通过 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,
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,这意味着如果我复制并粘贴并运行代码,我应该会看到与您完全相同的问题见。
标签: javascript node.js express mongoose nodemon