Node/Express:数据库打印在屏幕上而不是 index.html

Posted

技术标签:

【中文标题】Node/Express:数据库打印在屏幕上而不是 index.html【英文标题】:Node/Express: Database being printed on screen rather than index.html 【发布时间】:2021-12-16 19:15:07 【问题描述】:

所以,我使用的是 Node,但屏幕上打印的只是我的 JSON 格式的数据库,而不是 index.html。当我使用 localhost 时不会发生这种情况,所以我不知道为什么它会显示我的索引页面。谁能帮帮我?

我的代码:

const app = express();
app.listen(3000, () => console.log('listening'));

app.get('/api', (request, response) => 
    db.find(, (err, data) => 
        response.json(data);
    );
);

【问题讨论】:

【参考方案1】:

我没有完全正确理解您的问题,但根据代码,您将在 localhost:3000/api 上收到 JSON 响应,在 localhost:300 上收到空白屏幕,因为您尚未在代码中呈现或调用任何视图。

您可以使用app.use(express.static(__dirname + '/public')) 访问您的目录,然后使用res.sendFile('index.html') 在您希望的任何路径上呈现索引 HTML 文件。

【讨论】:

感谢您的意见!我应该把这些放在我的 app.js 的什么地方? 嘿!您已经有了 express.static 行,很抱歉在写答案时错过了它。只需在任何路由中写入res.sendFile('index.html'),在这种情况下,在您的/api 路由中。实际上,您的问题还说 DB 打印在屏幕上而不是 index.html ,这意味着您希望此 DB 在索引文件上。为此,您需要使用 API 将数据库专门调用到您的 HTML 文件中并在其中显示。

以上是关于Node/Express:数据库打印在屏幕上而不是 index.html的主要内容,如果未能解决你的问题,请参考以下文章

如何向 Node / Express 站点添加代理?

Node / Express with Graphql错误“_author2.default不是构造函数”

错误 cb.apply 不是 Node Express 项目中的功能 [尝试安装软件包时] --

通过 Node Express 将对象作为字符串而不是 JSON 发送

Node/Express 中的 JSON 模板

Node Express 根据 MySql 值更改 div 的颜色