ブラウザからmongodbにアクセスできません - ネイティブドライバーポートでHTTP経由でMongoDBにアクセスしようとしているようです 質問する

ブラウザからmongodbにアクセスできません - ネイティブドライバーポートでHTTP経由でMongoDBにアクセスしようとしているようです 質問する

ターミナルを開いて次のコマンドを入力します

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 が削除されます。

見るMongo http インターフェースと REST API

おすすめ記事