#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-файл и отобразить там.