模块方法:
把你的Flickr连接代码分离:
flickr-public.js
var Flickr = require("flickrapi"),
flickrOptions = {
api_key: "API key that you get from Flickr",
secret: "API key secret that you get from Flickr"
};
module.exports = (function(){
Flickr.tokenOnly(flickrOptions, function(error, flickr) {
//handle error here
console.log('Flickr Object Obtained');
return flickr;
});
})();
注:更好的实例在app.js文件Flickr的对象。 以便在服务器启动时立即创建对象。 由于此flickr对象仅用于公共API,并且不需要一次又一次地进行身份验证。通过简单地要求它
require('./flickr-public');
现在只需访问Flickr的对象的任何地方:
您可以通过简单地要求它在实例Flickr的对象app.js文件。
routes.js
const flickr = require('../path-to/flickr-public');
app.get('/', function (req, res) {
//use flickr object to perform actions.
});
说明:
从node.js的documentation:
模块是他们第一次加载后缓存。这意味着(除其他外)每次调用require('foo')
时都会返回完全相同的对象,如果它解析为相同的文件。 对require('foo')
的多次调用可能不会导致模块代码被多次执行。
你可以叫'Flickr.tokenOnly'通常里面的'app.get' callback..just确保CAL'res.send()'或'res.end()'终止该请求 – deadlock