【发布时间】:2023-03-19 21:10:02
【问题描述】:
我试图仅使用 HTML 表单将文本数据输入到 MongoDB 数据库。但是当我在 本地 运行它时,它不起作用。我认为这与创建 Node.js 服务器有关。但我不知道如何运行 HTML 文件(此处为 index.html)。我只学会了在 Node 控制台中单独运行 JavaScript 代码。我不知道如何在 NodeJS 上本地运行这个 index.html。
我也想在不使用 ExpressJS 的情况下做到这一点!我在网上找到的所有东西都只显示了如何使用 ExpressJS 来做到这一点。这背后有什么原因吗?我们不能只使用 NodeJS 和 MongoDB 来做到这一点吗? (本地在 Windows 上)
var MongoClient = require("mongodb").MongoClient;
var url = "mongodb://localhost:27017";
function addData(){
var record = document.getElementById("title").value;
MongoClient.connect(url, function (err, db) {
if (err) throw err;
var dbo = db.db("notetest");
var record2value = { title: record };
dbo.collection("page1").insertOne(record2value, function (err, res) {
if (err) throw err;
console.log("1 document added!");
db.close();
})
})
};
<!DOCTYPE html>
<html>
<head>
<title>test</title>
<script type="text/javascript" src="scripts/script.js"></script>
</head>
<body>
<form onsubmit="addData()">
<input type="text" name="title" id="title">
<input type="submit" name="submit" id="submit">
</form>
</body>
</html>
更新:我还尝试使用 Node.js 调用 index.html。通过使用以下代码。
var http = require('http');
var fs = require('fs');
const PORT=8080;
fs.readFile('./index.html', function (err, html) {
if (err) throw err;
http.createServer(function(request, response) {
response.writeHeader(200, {"Content-Type": "text/html"});
response.write(html);
response.end();
}).listen(PORT);
});
但我不知道为什么我没有看到来自 MongoDB 的 console.log,它应该说“添加了 1 个文档!”。
【问题讨论】:
标签: javascript html node.js mongodb forms