var express = require('express');
var app = express();
var path = require('path');
var api = require('./api');
app.get('/', function(req, res){
res.sendFile(path.join(__dirname + '/index.html'));
})
app.listen(8080)
console.log('Server Running');
我知道我们需要快递模块。我们正在使用express函数,我们需要模块路径并将引用存储在变量路径中并对api执行相同操作但超出此范围我有点迷失。如果我想连接到twitter API,我该怎么做呢?有人可以解释它背后的逻辑,这样我就可以更好地学习这个并用自己的不同API来应用它吗?我真诚地非常感谢你的帮助!
答案 0 :(得分:6)
Express是用于组织Web应用程序服务器的框架。您打开某些API路由以侦听路径并在必要时响应请求。
您只能打开API供内部使用,即来自运行您应用的浏览器的调用。或者你可以将你的API暴露给外部世界(例如twitter API正在这样做)。
要连接到Twitter API,您需要从您的网络服务器发出传出请求。有很多方法可以解决这个问题,从原生nodeJS包http
https://nodejs.org/api/http.html开始,到更受欢迎的替代request
https://github.com/request/request
这里要注意的一点是,NodeJS Web服务器通常比其他语言服务器的限制性更小,特别是在组织应用程序和代码体系结构时。因此对初学者来说有更多问题。随意提出更多问题。
中应用的主要目的
var app = express()
是监听路由(它也用于渲染页面,添加中间件等)而且只是那样。
假设您的UI上有一个按钮,允许您连接到Twitter API。因此,在点击时,您向自己的服务器发出GET请求,/api/twitter/connect
。
在您的服务器上,您可以按如下方式在此路径上收听:
var request = require('request'); //assuming you installed this module
app.get('/api/twitter/connect', function(req, res){
request(TWITTER_API_URL + API_KEYS, function(err, body){
res.json(body); //res is the response object, and it passes info back to client side
});
});
答案 1 :(得分:1)
您可以使用“request”包发送请求。但是在Cross-Origin-Request的情况下,您必须使用“HTTPS”而不是“HTTP”。您可以根据您的请求类型配置您的请求..
//Load the request module
var request = require('request');
//Lets configure and request
request({
url: 'https://example.com/abc/demo', //URL to hit
qs: {from: 'example', time: +new Date()}, //Query string data
method: 'GET', // specify the request type
headers: { // speciyfy the headers
'Content-Type': 'MyContentType',
'Custom-Header': 'Custom Value'
},
body: 'Hello Hello! String body!' //Set the body as a string
}, function(error, response, body){
if(error) {
console.log(error);
} else {
console.log(response.statusCode, body);
}
});
除此之外,还有其他方法可以做到这一点。对于twitter,您还可以查看名为“twitter”
的模块