Javascript NodeJS express-无法获取路由
我正在使用express和mongoose创建一个基本API。现在我想要2个GET URL——一个用于从数据库获取所有条目,另一个用于获取随机条目。现在,第一个定义的路由--“/API/getWords”可以正常工作,但当我将浏览器导航到第二个路由--“API/getRandomWord”时,会出现以下错误: 无法获取/API/getRandomWord 现在我不知道我做错了什么。我可以只定义一个app.get,现在需要定义定义不同函数的参数吗?或者这是一种“正确”的方法 谢谢你的帮助 My api.js:Javascript NodeJS express-无法获取路由,javascript,node.js,express,Javascript,Node.js,Express,我正在使用express和mongoose创建一个基本API。现在我想要2个GET URL——一个用于从数据库获取所有条目,另一个用于获取随机条目。现在,第一个定义的路由--“/API/getWords”可以正常工作,但当我将浏览器导航到第二个路由--“API/getRandomWord”时,会出现以下错误: 无法获取/API/getRandomWord 现在我不知道我做错了什么。我可以只定义一个app.get,现在需要定义定义不同函数的参数吗?或者这是一种“正确”的方法 谢谢你的帮助 My a
var express = require('express');
var bodyParser = require('body-parser');
var mongoose = require('mongoose');
var Words = require('./models/words.js');
//initialize our express app
var app = express();
//use body parser with JSON
app.use(bodyParser.json());
//middleware for CORS requests
app.use(function(req, res, next) {
res.header('Access-Control-Allow-Origin', '*');
res.header('Access-Control-Allow-Methods', 'GET, PUT, POST, DELETE');
res.header('Access-Control-Allow-Headers', 'Content-Type, Authorization');
next();
});
//addWords endpoint
app.post('/API/addWords', function(req, res) {
//get user from request body
var words = req.body;
var newWords = new Words({
quote: words.quote,
source: words.source,
author: words.author
});
newWords.save(function(err) {
if (err) {
if (err.code == 11000) {
res.status(400).send({
message: 'This quote already exists!'
});
} else {
res.status(500).send({
message: err.errmsg
});
}
} else {
console.log('quote saved!');
//if all goes well, send 200 + validation message
res.status(200).send({
message: 'Successfully quoted!'
});
}
});
});
//get all the words
app.get('/API/getWords', function(req, res) {
Words.find({}, function(err, words) {
if (err) {
res.status(500).send({
message: err.errmsg
});
} else {
res.status(200).send(words);
}
});
});
//get a random word
app.get('API/getRandomWord', function(req, res) {
//count ann the entries
Words.count().exec(function(err, count) {
//get a random number that is less or equal number of entries
var random = Math.floor(Math.random() * count);
//skip the random number, then return 1 entry
Words.findOne().skip(random).exec(
function(err, words) {
if (err) {
res.status(500).send({
message: err.errmsg
});
} else {
res.status(200).send(words);
}
});
});
});
//connect to mongoDB
mongoose.connect('');
//define our server
var server = app.listen(3000, function() {
console.log('api listening on ', server.address().port);
});
my model words.js:
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
// create a schema
var wordsSchema = new Schema({
author: {
type: String,
default: 'unknown',
index: true
},
source: {
type: String,
default: 'unknown',
index: true
},
quote: {
type: String,
unique: true,
required: true
},
created: Date,
updated: Date
});
//create the date
wordsSchema.pre('save', function(next) {
//get current date
var currentDate = new Date();
//assign date
this.updated = currentDate;
if (!this.created) {
this.created = currentDate;
}
next();
});
var Words = mongoose.model('Words', wordsSchema);
// make this available to our users in our Node applications
module.exports = Words;
/API/getRandomWord的路由缺少前导/,因此需要:
app.get('/API/getRandomWord', function(req, res) {
而不是:
app.get('API/getRandomWord', function(req, res) {
/API/getRandomWord的路由缺少前导/,因此需要:
app.get('/API/getRandomWord', function(req, res) {
而不是:
app.get('API/getRandomWord', function(req, res) {
叹气谢谢你:叹气。谢谢您: