Я пытался ввести текстовые данные в базу данных MongoDB, используя только форму HTML. Но когда я запустил его локально , он не работал. Я думаю, это как-то связано с созданием сервера Node.js. Но я не могу понять, как запустить файл HTML (здесь index.html
). Я только научился запускать только код JavaScript в консоли Node. Я не знаю, как запустить этот индекс. html локально на NodeJS.
Также я хочу сделать это без использования 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>
ОБНОВЛЕНИЕ: Также я пробовал вызвать это index.html
с помощью Node. Используя следующий код.
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);
});
Но я не знаю, почему я не вижу console.log
от MongoDB, в котором должно быть написано «1 документ добавлен!».