如何从 HTML 文件中的 <input> 获取值,在 NodeJS 中是 运行 到 MongoDB 数据库
How does one get a value from <input> in an HTML file being run in NodeJS to a MongoDB db
说,我想获取用户在 HTML 中输入的特定值 运行 在 NodeJS 上保存在我的数据库中,我该怎么做?
我可以通过 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);
我可以通过 DOM 从 example.html 获取我的值,像这样:
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 拉入 valuetobegotten 时 — 通过将其插入到 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();
});
});
是这样做的吗?
您需要将值从浏览器发送回您的节点服务器:
+---------+ <-1- +---------+ -3-> +----------+
| BROWSER | -2-> | SERVER | | DATABASE |
+---------+ +---------+ +----------+
您目前实现的是 1(服务于 HTML)和 3(在数据库中存储一些东西),但不是 2(将浏览器中 HTML 的值发送到节点服务器)。因此,您在 HTML 中获取的值需要发送到节点服务器中的(尚不存在的)端点,然后调用 MongoClient。
说,我想获取用户在 HTML 中输入的特定值 运行 在 NodeJS 上保存在我的数据库中,我该怎么做?
我可以通过 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);
我可以通过 DOM 从 example.html 获取我的值,像这样:
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 拉入 valuetobegotten 时 — 通过将其插入到 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();
});
});
是这样做的吗?
您需要将值从浏览器发送回您的节点服务器:
+---------+ <-1- +---------+ -3-> +----------+
| BROWSER | -2-> | SERVER | | DATABASE |
+---------+ +---------+ +----------+
您目前实现的是 1(服务于 HTML)和 3(在数据库中存储一些东西),但不是 2(将浏览器中 HTML 的值发送到节点服务器)。因此,您在 HTML 中获取的值需要发送到节点服务器中的(尚不存在的)端点,然后调用 MongoClient。