Node.js를 가지고 놀고 Twitter API 요청을하려고합니다. 내가 익스프레스 생성 된 프로젝트를 사용하고Node.js에서 URL을 찾을 수 없습니다.
, 그래서 내 app.js
는 항상 나에게 이러한 오류를 반환, 그
var express = require('express')
, routes = require('./routes')
, http = require('http')
, path = require('path')
, url = require('url');
var app = express();
// all environments
app.set('port', process.env.PORT || 3000);
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static(path.join(__dirname, 'public')));
// development only
if ('development' == app.get('env')) {
app.use(express.errorHandler());
}
app.get('/', routes.index);
http.createServer(app).listen(app.get('port'), function(){
console.log('Express server listening on port ' + app.get('port'));
});
그리고이
exports.index = function(req, res){
var username = 'Axiol';
option = {
protocol: 'http:',
host: 'api.twitter.com',
pathname: '/1/statuses/user_timeline.json',
query: { screen_name: username, count: 10 }
}
var twitterUrl = url.format(options);
console.log(twitterUrl);
};
꽤 좋은 것 같습니다 같은 index.js
처럼 보이지만
ReferenceError: url is not defined
at exports.index (/Users/Arnaud/Sites/badge/routes/index.js:17:20)
at callbacks (/Users/Arnaud/Sites/badge/node_modules/express/lib/router/index.js:161:37)
at param (/Users/Arnaud/Sites/badge/node_modules/express/lib/router/index.js:135:11)
at pass (/Users/Arnaud/Sites/badge/node_modules/express/lib/router/index.js:142:5)
at Router._dispatch (/Users/Arnaud/Sites/badge/node_modules/express/lib/router/index.js:170:5)
at Object.router (/Users/Arnaud/Sites/badge/node_modules/express/lib/router/index.js:33:10)
at next (/Users/Arnaud/Sites/badge/node_modules/express/node_modules/connect/lib/proto.js:190:15)
at Object.methodOverride [as handle] (/Users/Arnaud/Sites/badge/node_modules/express/node_modules/connect/lib/middleware/methodOverride.js:37:5)
at next (/Users/Arnaud/Sites/badge/node_modules/express/node_modules/connect/lib/proto.js:190:15)
at multipart (/Users/Arnaud/Sites/badge/node_modules/express/node_modules/connect/lib/middleware/multipart.js:64:37)
url
이지만 잘 정의 된 내용은 ...
아이디어가 있으십니까?
그러면 왜 작동합니까? '$ node -e 'console.log (url.parse ("http://x.com/"))' URL { 프로토콜 : 'http :', 슬래시 : 참, 인증 : null, 호스트 'x.com', 포트 : 널 (null), 호스트 이름 : 'x.com', 해시 : 널 (null), 검색 : 널 (null), 쿼리 : 널 (null), 경로 : '/', 경로 : '/', href : 'http://x.com/'}' – ekkis