Javascript /访问TVDB数据库时出现POST错误
我正在为一个项目使用tvdb数据库。使用当前代码,我无法从数据库中获取任何数据。当我执行post请求时,请求永远不会结束,除非我手动取消它。是apikey还是客户端构造不正确。请帮忙 app.jsJavascript /访问TVDB数据库时出现POST错误,javascript,node.js,express,Javascript,Node.js,Express,我正在为一个项目使用tvdb数据库。使用当前代码,我无法从数据库中获取任何数据。当我执行post请求时,请求永远不会结束,除非我手动取消它。是apikey还是客户端构造不正确。请帮忙 app.js var express = require('express'); var path = require('path'); var favicon = require('serve-favicon'); var logger = require('morgan'); var cookieParser
var express = require('express');
var path = require('path');
var favicon = require('serve-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');
var TVDB = require('node-tvdb');
var async = require('async');
var _ = require('lodash');
var mongoose = require('mongoose');
var bcrypt = require('bcryptjs');
var config = require('./config');
mongoose.connect(config.mongoUrl);
var db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function(){
//we're connected
console.log("Connected correctly to the server");
});
var index = require('./routes/index');
var users = require('./routes/users');
var showRouter = require('./routes/showRouter');
var episodeRouter = require('./routes/episodeRouter');
var app = express();
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: false}));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));
app.use('/', index);
app.use('/users', users);
app.use('/shows', showRouter);
app.use('/episodes', episodeRouter);
// catch 404 and forward to error handler
app.use(function(req, res, next) {
var err = new Error('Not Found');
err.status = 404;
next(err);
});
// error handler
app.use(function(err, req, res, next) {
// set locals, only providing error in development
res.locals.message = err.message;
res.locals.error = req.app.get('env') === 'development' ? err : {};
// render the error page
res.status(err.status || 500);
res.render('error');
});
module.exports = app;
showRouter.js
var express = require('express');
var bodyParser = require('body-parser');
var mongoose = require('mongoose');
var TVDB = require('node-tvdb');
var Show = require('../models/shows');
var Episode = require('../models/episodes');
var showRouter = express.Router();
showRouter.use(bodyParser.json());
showRouter.route('/')
.get(function(req, res, next){
var query = Show.find();
if (req.query.genre) {
query.where({ genre: req.query.genre });
} else if (req.query.alphabet) {
query.where({ name: new RegExp('^' + '[' + req.query.alphabet + ']', 'i') });
} else {
query.limit(12);
}
query.exec(function(err, shows) {
if (err) return next(err);
res.send(shows);
});
})
.post(function(req, res, next) {
var apiKey = '5BB799C77561B167';
var tvdb = new TVDB(apiKey);
var seriesName = req.body.showName;
//only for test, data not yet created in
//mongodb
tvdb.getSeriesByName(seriesName, function(err, series){
if(err) throw err;
res.send(series.data.series || series.data.series[0]);
});
});
showRouter.route('/:_id')
.get(function(req, res, next) {
Show.findById(req.params._id, function(err, show) {
if (err) return next(err);
res.send(show);
});a
});
module.exports = showRouter;
shows.js
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var showSchema = new Schema({
_id: Number,
name: String,
airsDayOfWeek: String,
airsTime: String,
firstAired: Date,
genre: [String],
network: String,
overview: String,
rating: Number,
ratingCount: Number,
status: String,
banner: String,
subscribers: [{
type: mongoose.Schema.Types.ObjectId,
ref: 'User'
}],
episodes: [{
type: mongoose.Schema.Types.ObjectId,
ref: 'Episode'
}]
});
var Show = mongoose.model('Show', showSchema);
module.exports = Show;