브라우저를 통해 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와 when을 사용하여 간단한 nodejs 애플리케이션을 만들었습니다.POST
데이터 몽고드브가 끊어진 것 같습니다.이것은 제가 고속 애플리케이션을 시작하고 페이지가 데이터를 게시하지 않는 단말기에서 받는 메시지입니다.그래서 저는 문제가 몽고 안에 있다고 생각하지만 이해할 수 없습니다.
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.js
...
app.get('/info',info.form);
app.post('/info',info.submit);
...
Mongo 3.6 이전 버전:
당신은 mongodb를 시작할 수 있습니다.
mongod --httpinterface
액세스할 수 있습니다.
http://localhost:28017
버전 2.6 이후: MongoDB는 기본적으로 HTTP 인터페이스를 비활성화합니다.
갱신하다
HTTP 인터페이스와 REST API
MongoDB 3.6은 사용되지 않는 HTTP 인터페이스와 MongoDB에 대한 REST API를 제거합니다.
Mongo http 인터페이스 및 rest api 참조
MongoDB에는 기본적으로 28017에 있는 간단한 웹 기반 관리 포트가 있습니다.
기본 포트 27017에 HTTP 액세스가 없습니다(이는 오류 메시지가 표시하려는 것입니다).기본 포트는 HTTP 트래픽이 아닌 기본 드라이버 액세스에 사용됩니다.
MongoDB에 액세스하려면 NodeJS용 MongoDB 네이티브 드라이버와 같은 드라이버를 사용해야 합니다.MongoDB에 직접 "POST"하지는 않지만 기본 드라이버를 사용하는 express를 사용하여 RESTful API를 만들 수 있습니다.대신, 당신은 MongoDB에 쉽게 접근할 수 있는 래퍼 라이브러리를 사용할 것입니다.NodeJS에서 MongoDB에 대한 ORM과 유사한 모델을 추가하는 Mongoose(기본 드라이버 사용)를 사용하는 것도 고려할 수 있습니다.
웹 인터페이스에 액세스할 수 없는 경우 비활성화될 수 있습니다.일반적으로 로그 등을 확인하지 않는 한 개발에 필요하지 않을 것이라고 생각합니다.
앞의 설명과 마찬가지로 "원본 드라이버 포트에서 HTTP를 통해 MongoDB에 액세스하려고 하는 것 같습니다."라는 메시지는 mongoose.connect('mongodb://localhost/info') 행을 잘못 이해하고 다음 URL을 탐색하는 경우의 경고입니다. http://localhost:28017/
그러나 mongo의 관리 웹 페이지를 보려면 다음 명령을 사용하여 확인할 수 있습니다.
mongod --rest --rest --rest 인터페이스
다음 URL 검색: http://localhost:28017/
매개 변수 http 인터페이스는 관리자 웹 페이지를 활성화하고 매개 변수 rest는 페이지가 필요로 하는 나머지 서비스를 활성화하는 데 필요합니다.
MongoDB용 HTTP 인터페이스 버전 3.2 이후 사용되지 않음 :)
MongoDocs 확인: HTTP 상태 인터페이스
저는 unbuntu 14.04에 있으며 mongod는 업스타트 서비스로 등록되어 있습니다.이 게시물의 답변은 저를 올바른 방향으로 이끌었습니다.이 잘 풀리게 할 은 편집하는 이었습니다./etc/mongod.conf
다음과 같은 행을 찾습니다.
# Enable the HTTP interface (Defaults to port 28017).
# httpinterface = true
제거하기만 하면 됩니다.#
서비스를 시작합니다. mongod를 다시 시작합니다.
sudo restart mongod
참고: 다음과 같은 행을 추가하여 나머지 인터페이스를 활성화할 수도 있습니다.
rest=true
위에서 언급한 http 인터페이스 라인 바로 아래.
언급URL : https://stackoverflow.com/questions/23446876/cannot-access-mongodb-through-browser-it-looks-like-you-are-trying-to-access-m
'programing' 카테고리의 다른 글
Git를 누르기 전에 여러 커밋 결합 (0) | 2023.06.06 |
---|---|
PDF에서 페이지를 JPEG로 추출 (0) | 2023.06.06 |
dplyr로 여러 열을 요약하시겠습니까? (0) | 2023.06.06 |
오류: Firebase ID 토큰이 만료되었습니다. (0) | 2023.06.06 |
VBA에서 사용된 마지막 행을 결정하는 방법(빈칸 포함) (0) | 2023.06.06 |