Javascript 如何从另一个js文件node.js插入mongodb数据-

Javascript 如何从另一个js文件node.js插入mongodb数据-,javascript,node.js,mongodb,ejs,Javascript,Node.js,Mongodb,Ejs,我现在已经在node.js和mongodb上观看并阅读了大量教程。我知道如何创建数据库、插入数据、在ejs文件上显示数据等。但是,我不知道如何从ejs文件中插入数据 例如: 我有一个app.js和一个mongodb.js应用程序运行我的服务器,mongodb.js创建一个数据库并插入一些数据-不是用mongoose而是用mongodb。我还有一些从mongodb.js获取数据并显示的ejs文件。这是我的mongodb.js: var mongodb = require('mongodb'); v

我现在已经在node.js和mongodb上观看并阅读了大量教程。我知道如何创建数据库、插入数据、在ejs文件上显示数据等。但是,我不知道如何从ejs文件中插入数据

例如:

我有一个
app.js
和一个
mongodb.js
应用程序运行我的服务器,mongodb.js创建一个数据库并插入一些数据-不是用mongoose而是用mongodb。我还有一些从mongodb.js获取数据并显示的ejs文件。这是我的mongodb.js:

var mongodb = require('mongodb');
var MongoClient = mongodb.MongoClient;
var url = 'mongodb://localhost:27017/my_database_name';
exports.drinks = [
    { name: 'Manu', rate: 3 },
    { name: 'Martin', rate: 5 },
    { name: 'Bob', rate: 10 }
];
// Use connect method to connect to the Server
MongoClient.connect(url, function (err, db) {
    if (err) {
        console.log('Unable to connect to the mongoDB server. Error:', err);
    } else {
        //HURRAY!! We are connected. :)
        console.log('Connection established to', url);

        // Get the documents collection
        var collection = db.collection('users');

        // Insert some users
        collection.insert(exports.drinks, function (err, result) {
            if (err) {
                console.log(err);
            } else {
                console.log('Inserted %d documents into the "users" collection. The documents inserted with "_id" are:', result.length, result);
            }
    console.log(collection.users.find());
            //Close connection
            db.close();
        });
    }
});
然后在我的app.js中,我有以下内容:

//index page
app.get('/', function(req, res) {
    res.render('pages/index', {
        drinks: drinks,
        tagline: tagline
    });
});
在我的ejs上:

<ul>
    <% drinks.forEach(function(drink) { %>
    <li><%= drink.name %> : <%= drink.rate %></li>
    <% });; %>
</ul>
  • :
但现在我希望能够从ejs(甚至从app.js)更新/插入数据到数据库中


例如,如果我有一个表单,我希望用户在其中键入他们的姓名,我希望该姓名保存在我的数据库中。如何执行此操作?

Ejs-only模板引擎(在MVC中查看),它无法更新和插入数据库(Controller执行此操作)。您需要为获取用户数据和更新数据库创建一个路由(POST)

您的EJ没有将数据直接保存到数据库中,但应该将数据发送到node.js服务器,该服务器接收该数据并使用mongodb驱动程序api将其保存到数据库中。另一方面,你应该考虑使用MangoOSE这是一个很好的抽象,MangGDB的No.jsAn教程关于如何做到这一点。你可以阅读这个例子。