Узел/Экспресс: База данных печатается на экране, а не index.html

#javascript #node.js #json #express #cpanel

Вопрос:

Итак, я использую Node, но все, что печатается на экране, — это моя база данных в формате JSON, а не index.html. Этого не происходит, когда я использую localhost, поэтому я понятия не имею, почему он показывает мою страницу индекса. Кто-нибудь может мне помочь?

Мой код:

 const app = express(); app.listen(3000, () =gt; console.log('listening'));  app.get('/api', (request, response) =gt; {  db.find({}, (err, data) =gt; {  response.json(data);  }); });  

Ответ №1:

Я не совсем правильно понял ваш вопрос, но, основываясь на коде, вы получите ответ JSON localhost:3000/api и пустой экран localhost:300 , так как вы не отображали и не вызывали никаких представлений в своем коде.

Вы можете использовать app.use(express.static(__dirname '/public')) для доступа к своему каталогу, а затем использовать res.sendFile('index.html') для отображения индексного HTML-файла по любому маршруту, который вы пожелаете.

Комментарии:

1. Спасибо вам за ваш вклад! Куда мне их положить в свой app.js?

2. Эй! У вас уже есть строка express.static, извините, что пропустил ее при написании ответа. просто напишите res.sendFile('index.html') внутри любого из маршрутов, в данном случае внутри вашего /api маршрута. Кроме того , на самом деле в вашем вопросе говорится, что база данных напечатана на экране, а не index.html , что означает, что вы хотите, чтобы эта база данных была в индексном файле. Для этого вам нужно специально вызвать базу данных с помощью API в свой HTML-файл и отобразить там.