Javascript Nodejs-在js文件中连接mongodb数据库?
因此,我在本教程中了解了如何使用mongodb: 我在包含html css和js的项目文件夹中本地安装了mongodb,在项目文件夹中运行npm list mongodb,得到了mongodb版本。我还没有安装它的全球,但据我所知,这是好的,对吗 无论如何,我尝试添加教程中的示例来测试连接到mongodb数据库。我刚刚创建了一个函数,并在页面加载后立即调用它:Javascript Nodejs-在js文件中连接mongodb数据库?,javascript,node.js,mongodb,mongoose,Javascript,Node.js,Mongodb,Mongoose,因此,我在本教程中了解了如何使用mongodb: 我在包含html css和js的项目文件夹中本地安装了mongodb,在项目文件夹中运行npm list mongodb,得到了mongodb版本。我还没有安装它的全球,但据我所知,这是好的,对吗 无论如何,我尝试添加教程中的示例来测试连接到mongodb数据库。我刚刚创建了一个函数,并在页面加载后立即调用它: function connectMongo(){ alert("test1"); var MongoClient = r
function connectMongo(){
alert("test1");
var MongoClient = require('mongodb').MongoClient;
alert("test2");
var myCollection;
var db = MongoClient.connect('mongodb://127.0.0.1:27017/test', function(err, db) {
if(err){
throw err;
alert("mongoerror");
}
alert("connected to the mongoDB !");
// myCollection = db.collection('test_collection');
});
}
第一个测试警报有效,但第二个测试未出现。但是,页面上的其余代码仍在运行,因此我认为没有语法错误。我不知道我到底打算如何运行这个示例,有人能告诉我为什么我的函数在结束后退出吗
var MongoClient = require('mongodb').MongoClient;
我还安装了mongoose,尽管我不太确定我是否在这里的示例中使用它
抱歉,如果我的问题有点模糊,我真的不知道我在这里做什么听起来你好像在试图在浏览器中运行mongo connection javascript。mongodb连接通过
节点
可执行文件在服务器上运行。这是运行服务器端的web应用程序中的javascript代码,而不是web应用程序交付给浏览器以运行客户端的javascript
创建一个文件test.js
function connectMongo(){
var MongoClient = require('mongodb').MongoClient;
console.log('MongoClient is',typeof MongoClient)
var myCollection;
var url = 'mongodb://127.0.0.1:27017/test';
var db = MongoClient.connect(url, function(err, db) {
if(err){
console.log("mongoerror", err);
throw err;
}
console.log("connected to the mongoDB!");
myCollection = db.collection('test_collection');
});
}
connectMongo()
然后在系统上,在命令或shell提示符下运行
node test.js
应该打印出来
$ node test.js
MongoClient is function
connected to the mongoDB!
^C
一旦服务器连接到数据库,就可以将消息从前端javascript传递到后端服务器代码。通常这是通过http请求完成的,因此javascript会在后台发出额外的http请求。为此提供了一个简单的跨浏览器API。您还可以使用WebSocket通过Web服务器来回传递消息
要了解Node/Express/MongoDB应用程序的基本知识,请尝试以下操作:听起来您好像在尝试在浏览器中运行mongo连接javascript。mongodb连接通过
节点
可执行文件在服务器上运行。这是运行服务器端的web应用程序中的javascript代码,而不是web应用程序交付给浏览器以运行客户端的javascript
创建一个文件test.js
function connectMongo(){
var MongoClient = require('mongodb').MongoClient;
console.log('MongoClient is',typeof MongoClient)
var myCollection;
var url = 'mongodb://127.0.0.1:27017/test';
var db = MongoClient.connect(url, function(err, db) {
if(err){
console.log("mongoerror", err);
throw err;
}
console.log("connected to the mongoDB!");
myCollection = db.collection('test_collection');
});
}
connectMongo()
然后在系统上,在命令或shell提示符下运行
node test.js
应该打印出来
$ node test.js
MongoClient is function
connected to the mongoDB!
^C
一旦服务器连接到数据库,就可以将消息从前端javascript传递到后端服务器代码。通常这是通过http请求完成的,因此javascript会在后台发出额外的http请求。为此提供了一个简单的跨浏览器API。您还可以使用WebSocket通过Web服务器来回传递消息
要了解Node/Express/MongoDB应用程序的基础知识,请尝试以下操作:尽管Nodejs是用Javascript编写的,但您必须明确区分客户端和服务器功能。Javascript的alert()用于在浏览器上弹出消息。这不是Nodejs所做的,因为它是一个服务器应用程序 忘记警报(“消息”)您想使用console.log(“消息”);在服务器控制台上查看日志信息 先决条件 让我们快速回顾一下客户机-服务器web交互:
$ node name_of_file_here.js
如果语法中有错误或缺少依赖项,控制台将记录错误。如果没有出现,一切都会好起来
步骤2
现在,您仍然不能期望在浏览器上看到任何“相关”的内容,因为您的服务器虽然设置了MongoDB实例,但仍然没有侦听来自客户端的请求。
需要添加一些代码:
'use strict';
var http = require('http');
var PORT=8009;
var MongoClient = require('mongodb').MongoClient;
// Connect to the db
var d = MongoClient.connect("mongodb://localhost:27017/exampleDb", function(err, db) {
if(!err) {
console.log("We are connected");
}
});
//Create a server
var server = http.createServer(function(request, response) {
console.log("received request");
// use MongoClient to get relevant data
// var relevant_data = ...;
// response.write(relevant_data);
response.write("hey there");
response.end();
});
server.listen(PORT, function(){
//Callback triggered when server is successfully listening. Hurray!
console.log("Server listening on: http://localhost:%s", PORT);
});
最后一个音符
我绝不是MongoDB专家,但我相信MongoDB客户端必须在您的系统上运行MongoDB服务(服务器),才能创建连接 首先,尽管Nodejs是用Javascript编写的,但您必须清楚地区分客户端和服务器功能。Javascript的alert()用于在浏览器上弹出消息。这不是Nodejs所做的,因为它是一个服务器应用程序 忘记警报(“消息”)您想使用console.log(“消息”);在服务器控制台上查看日志信息 先决条件 让我们快速回顾一下客户机-服务器web交互:
$ node name_of_file_here.js
如果语法中有错误或缺少依赖项,控制台将记录错误。如果没有出现,一切都会好起来
步骤2
现在,您仍然不能期望在浏览器上看到任何“相关”的内容,因为您的服务器虽然设置了MongoDB实例,但仍然没有侦听来自客户端的请求。
需要添加一些代码:
'use strict';
var http = require('http');
var PORT=8009;
var MongoClient = require('mongodb').MongoClient;
// Connect to the db
var d = MongoClient.connect("mongodb://localhost:27017/exampleDb", function(err, db) {
if(!err) {
console.log("We are connected");
}
});
//Create a server
var server = http.createServer(function(request, response) {
console.log("received request");
// use MongoClient to get relevant data
// var relevant_data = ...;
// response.write(relevant_data);
response.write("hey there");
response.end();
});
server.listen(PORT, function(){
//Callback triggered when server is successfully listening. Hurray!
console.log("Server listening on: http://localhost:%s", PORT);
});
最后一个音符
我绝不是MongoDB专家,但我相信MongoDB客户端必须在您的系统上运行MongoDB服务(服务器),才能创建连接 你提到猫鼬,但你没有使用那个模块。您是否安装了
mongodb
模块?是的,mongodb和mongoose都安装在我的项目文件夹中。您正在使用alert
并说“一旦我的页面加载”。这个javascript是否提供给浏览器?是的,我正在构建一个web应用程序,我只是简单地测试一下mongodb examle,然后再将它整合到我的网页中