【发布时间】:2020-08-02 20:36:17
【问题描述】:
我是初学者,通过关注一些在线资源来学习 node.js、REST API 和 MongoDB。我尝试在以下代码中使用关键字“require”,以使用户无法输入空白值:
ninjas.js(创建架构和模型)
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
//create Schema and model
const NinjaSchema = new Schema({
name:{
type: String,
require: [true,'Name field is required']
},
rank:{
type: String,
require: [true,'This field is required']
},
available:{
type: Boolean,
default: false,
require: [true,'This field is required']
}
//add in geo loction
});
const Ninja = mongoose.model('hi ninja',NinjaSchema);
module.exports = Ninja;
以下是处理 API 的代码:
api.js
const express = require('express');
const Ninja = require('../models/ninjas');
const router = express.Router();
//get a list of ninjas from the database
router.get('/ninjas',(req,res,next)=>{
res.send({type: 'GET'});
})
//add a new ninjas to the database
router.post('/ninjas',(req,res,next)=>{
//create a Ninja object and save it to DB
Ninja.create(req.body).then((ninja) => {
res.send(ninja)
}).catch(next);
})
//update a ninjas in the database
router.put('/ninjas/:id',(req,res,next)=>{
res.send({type: 'PUT'});
})
//delete a ninjas from the database
router.delete('/ninjas/:id',(req,res,next)=>{
res.send({type: 'DELETE'});
})
module.exports = router;
下面是主程序:
index.js
const express = require('express');
const bodyParser = require('body-parser');
const mongoose = require('mongoose');
//set up express app
const app = express();
//connect to mondodb
mongoose.connect("mongodb://localhost/ninjago",{
useNewUrlParser: true,
useUnifiedTopology: true,
});
mongoose.Promise = global.Promise;
//body parser middleware
app.use(bodyParser.json());
//initialize routes
app.use('/api',require('./routes/api'));
//error handling middleware
app.use((err,req,res,next) => {
//console.log(err);
res.status(422).send({error: err.message});
});
//listen for requests
app.listen(process.env.port || 4000,() => {
console.log('now listening for requests');
});
但是,当我尝试使用 POSTMAN 测试 API 时,我发现即使我没有某些参数,系统仍然会返回成功消息。
我可以知道我的代码中是否有错误或缺失导致“require”关键字不起作用?非常感谢!
尊敬的
【问题讨论】:
标签: javascript node.js mongodb rest