javascript - 从node.js发送一个简单的json到index.html

标签 javascript node.js ajax express

这应该是一个简单的解决方案,但当我用谷歌搜索时,每个人似乎都错过了这个。我想发送一个简单的 json 消息/文件到我的 index.html

Node.js 代码

const express = require('express');
const app = express();
const path = require('path');
const router = express.Router();

router.get('/',function(req,res){
res.setHeader('Access-Control-Allow-Origin', '*');
res.sendFile(path.join(__dirname+'/index.html'));


}); 

app.get('/index.html', function(req, res, next) {
res.json({ message: 'Hello World' });
});

app.use('/', router);
app.listen(process.env.port || 3000);

console.log('Running at Port 3000');

现在在我的 javascript 代码中

$.ajax({
url: 'http://localhost:3000/',
complete: function(data) {
console.log(data);   <---------THIS IS WHERE I WANT THE JSON TO BE I 
WANT TO LOG 
IT

}
});

为什么我的 Json 消息不显示???我怎样才能获取这些数据并console.log它。我很感激我能得到的任何帮助。我正在使用 Express。

最佳答案

以下两个片段的错误实现让我相信 OP 并不完全理解路由、路由器和 Express 应用程序。

router.get('/',function(req,res){
    res.setHeader('Access-Control-Allow-Origin', '*');
    res.sendFile(path.join(__dirname+'/index.html'));
}); 

app.get('/index.html', function(req, res, next) {
    res.json({ message: 'Hello World' });
});

路由器用于定义可访问的路由,这些路由期望返回有用的信息。然后,Express 应用程序使用该路由器来适本地处理请求。

要定义一个路由,将“hello world”返回到您想要重写路由的 axios 请求:

router.get('/',  (req, res) => {
    res.json({message: 'hello world'})
})

关于javascript - 从node.js发送一个简单的json到index.html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60458595/

相关文章:

javascript - 记录每个方法?

javascript - 如何在 Node.js 中处理媒体流?

php - 循环期间的服务器响应(状态更新)

javascript - 使用ajax和快速路由重定向到新的url

javascript - 反转字符串中单词的字符顺序

javascript - 在 Javascript 中加载 XML 数据时出错

javascript - 与下划线相反 ._without(array, value)

javascript - 何时执行动态加载到 head 中的 CSS

javascript - 将嵌套 JSON 数组转换为平面 JSON 数组

asp.net - 客户端回调和 Ajax 页面方法之间的区别 - ASP.NET