#node.js
#node.js
Вопрос:
Как я могу выводить строки (документы) в формате таблицы html без использования механизма express / view. Я пытался написать res.write( ${documents}
), который не работает. Пожалуйста, проверьте следующий код.
const http = require('http');
const MongoClient = require('mongodb').MongoClient;
const hostname = '127.0.0.1';
const port = 3000;
const url = 'mongodb://localhost:27017';
const client = new MongoClient(url, { useNewUrlParser: true });
var documents;
client.connect(err => {
const collection = client.db("mydb").collection("messages");
collection.find({}).toArray(function(err, docs) {
console.log("Found the following records");
console.log(docs); // How can write this docs as html table
documents = docs; // Is there any workaround for this?
});
client.close();
});
const server = http.createServer((req,res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.write(`Server running at http://${hostname}:${port}/. Records:${documents}`); //this document not appearing
res.end();
});
server.listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`);
});
Комментарии:
1. Вам нужно сгенерировать HTML-разметку из JSON или сопоставить JSON с HTML правильно?
2. Если это так, то попробуйте это let myObj txt = «<граница таблицы =’1′>» для (x в myObj) { txt = «<tr><td>» myObj[x].name «</td></tr>»; } txt = «</table>» document = txt;
3. давайте узнаем, отличается ли область вопроса
Ответ №1:
Одна из проблем вашего кода связана с заголовками
res.setHeader('Content-Type', 'text/plain');
вам нужно установить content-type text/html
Если вы хотите сопоставить JSON с HTML, попробуйте это
let myObj
txt = "<table border='1'>"
for (x in myObj) { txt = "<tr><td>" myObj[x].name "</td></tr>"; }
txt = "</table>"
document = txt;
Комментарии:
1. Привет, Азин, спасибо за твой быстрый ответ. Я скопировал вставленный ваш код. но на выходе написано «не определено». не могли бы вы, пожалуйста, правильно отформатировать код и подсказать мне, как выводить в res.write()? Спасибо.
2. Привет, Азин, я исправил формат. теперь это наконец сработало. Спасибо.
Ответ №2:
За ваш комментарий по
// Как записать этот документ в виде HTML-таблицы
Вы пробовали console.table() вместо console.log()?
Комментарии:
1. Привет, спасибо за твой ответ. console.table() выводится красиво. я хочу вывести такую таблицу в разметке браузера.