ターミナルを開いて次のコマンドを入力します
sudo mongod
そして、出力は
[initandlisten] waiting for connections on port 27017
別の端末を開いて入力する
sudo mongo
mongo シェルが開き、mongo コマンドの入力を求められますが、localhost/27017 にアクセスすると次のメッセージが表示されます。
It looks like you are trying to access MongoDB over HTTP on the native driver port.
Express を使用して簡単な Node.js アプリケーションを作成しましたが、POST
データを入力すると mongodb がハングアップするようです。これは、Express アプリケーションを起動したターミナルで受信したメッセージであり、ページはデータを投稿しません。したがって、問題は mongo にあると考えていますが、原因がわかりません。
POST /info 200 120002ms
これが私のエクスプレスコードです
var Info = require('../models/info');
var path = require('path');
var fs = require('fs');
var join = path.join;
exports.form = function(req,res){
res.render('info', {
myName: 'Michael'
});
};
exports.submit = function(){
console.log('Within exports.submit 1');
return function(req,res,next){
console.log('Within exports.submit 2 ');
var firstName = req.name.first;
var lastName = req.name.last;
Info.create({
firstName: firstName,
lastName: lastName
},function(err){
if(err) return next(err);
res.redirect('/')
});
}
};
モデル
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/info');
var schema = new mongoose.Schema({
firstName: String,
lastName: String
});
module.exports = mongoose.model('info',schema);
アプリ
...
app.get('/info',info.form);
app.post('/info',info.submit);
...
ベストアンサー1
Mongo 3.6 以前:
MongoDBを次のように起動します。
mongod --httpinterface
そしてアクセスする
http://localhost:28017
バージョン 2.6 以降: MongoDB はデフォルトで HTTP インターフェースを無効にします。
アップデート
HTTP インターフェースと REST API
MongoDB 3.6 では、MongoDB への非推奨の HTTP インターフェースと REST API が削除されます。