在Node.js中,可以使用Express框架来定义JSONP接口。JSONP是一种通过动态添加script标签来请求跨域数据的技术,它可以在服务器端返回JavaScript代码,然后在客户端执行该代码以获取数据。
下面是一个使用Express框架定义JSONP接口的示例代码:
安装Express模块
首先,需要在Node.js项目中安装Express模块,可以通过npm进行安装:
npm install express
创建Express应用程序并定义JSONP接口
在Express应用程序中,可以通过调用app.get()方法来定义一个GET请求的路由处理程序,并使用res.jsonp()方法返回JSONP格式的数据。例如:
const express = require('express'); const app = express();
app.get('/data', function (req, res) { const data = { name: 'John', age: 30 }; res.jsonp(data); });
app.listen(3000, function () { console.log('Server started on port 3000'); });
在上面的代码中,我们定义了一个名为/data的路由,当客户端发送GET请求到该路由时,服务器将返回一个JSONP格式的数据。使用res.jsonp()方法返回的数据将会自动添加回调函数名,例如:
const callback = req.query.callback; const data = { name: 'John', age: 30 }; res.jsonp(data); // 返回带有callback函数的JSONP数据
在客户端中,可以使用script标签来请求该路由,并在回调函数中处理返回的数据。例如:
<script> const callback = 'processData'; const url = '/data?callback=' + encodeURIComponent(callback); const script = document.createElement('script'); script.src = url; document.head.appendChild(script); </script>