0
私はMongoDB/Node.js/expressで初めてです。私はこの次のアプリケーションを設定しています: https://www.youtube.com/watch?v=eB9Fq9I5ocs "chatbot"という名前のデータベースと "chatbot"内の2つのコレクション、 "countries"と "population"を作成しました。空の配列を示すMongoDBエクスプレスアプリ
しかし、シェルで作成した国を表示するためにアプリケーションを実行しようとすると、空の配列だけが表示されます。ここで
はコレクション "国" である:ここでは
> db.countries.find()
{ "_id" : ObjectId("58a0c3234d9ba38dcbe1769d"), "name" : "Afghanistan" }
{ "_id" : ObjectId("58a0c3844d9ba38dcbe1769e"), "name" : "Andorra" }
は私のアプリのファイルは、以下のとおりです。 package.jsonファイル:
{
"name": "chatbot",
"version": "1.0.0",
"description": "chatbot app",
"main": "app.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"dependencies": {
"express": "*",
"body-parser": "*",
"mongoose": "*"
},
"author": "Chris",
"license": "ISC",
"devDependencies": {
"nodemon": "^1.11.0"
}
}
app.js:
var express = require('express');
var app = express();
var bodyParser = require('body-parser');
var mongoose = require('mongoose');
Country = require('./models/country.js');
// Connect to Mongoose
mongoose.connect('mongodb://localhost/ChatbotService')
var db = mongoose.connection;
app.get('/', function(req, res){
res.send('Hola');
});
app.get('/api/countries', function(req, res){
Country.getCountries(function(err, countries){
if(err){
throw err;
}
res.json(countries);
});
});
app.listen(8601);
console.log('Running on port 8601...');
国.js:
var mongoose = require('mongoose');
// Country Schema
var countrySchema = mongoose.Schema({
name:{
type:String,
required: true
},
create_date:{
type: Date,
default: Date.now
}
});
var Country = module.exports = mongoose.model('Country', countrySchema);
// Get Countries
module.exports.getCountries = function(callback, limit){
Country.find(callback).limit(limit);
}