如何从 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。