說,我想將用戶在 NodeJS 上運行的 HTML 中輸入的某個值保存在我的資料庫中,我該怎么做?
當然,我可以通過 DOM 從 HTML 中獲取值。假設 example.html 正在通過 NodeJS 運行,如下所示:
var fs = require('fs');
http.createServer(function (req, res) {
fs.readFile('example.html', function(err, data) {
res.writeHead(200, {'Content-Type': 'text/html'});
res.write(data);
return res.end();
});
}).listen(8080);
我可以通過 example.html 中的 DOM 獲取我的值,如下所示:
var valuetobegotten = document.getElementById('valuetobegotten').value;
但這只發生在前端 HTML 中。我知道您需要一個 MongoDB 驅動程式才能通過 NodeJS 與 MongoDB 進行互動。并且需要設定這樣的東西:
var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:8080";
MongoClient.connect(url, function(err, db) {
if (err) throw err;
console.log("Database created!");
db.close();
});
但是,當我嘗試拉入之前通過 DOM 拉入的值時——通過將其插入到 MongoDB 集合中,MongoDB 怎么知道去哪里尋找?它是否查看在同一服務器上運行的 JS 檔案的 url?像這樣:
MongoClient.connect(url, function(err, db) {
if (err) throw err;
var dbo = db.db("mydb");
var valuetogotten = valuetobegotten;
dbo.collection("values").insertOne(valuetobegotten, function(err, res) {
if (err) throw err;
console.log("1 document inserted");
db.close();
});
});
是這樣完成的嗎?
uj5u.com熱心網友回復:
您需要將瀏覽器中的值發送回您的節點服務器:
--------- <-1- --------- -3-> ----------
| BROWSER | -2-> | SERVER | | DATABASE |
--------- --------- ----------
您當前實作的是 1(提供 HTML)和 3(在資料庫中存盤某些內容),但不是 2(將值從瀏覽器中的 HTML 發送到節點服務器)。因此,您在 HTML 中獲取的值需要發送到節點服務器中的(尚不存在的)端點,然后呼叫 MongoClient。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/474017.html
上一篇:MongoDB從結果集中獲取交集
下一篇:Mongo專案添加到陣列
