我正在尝试按照此处的说明进行操作
但是,我似乎太笨了,无法理解为什么我不能在客户端引用 socket.io.jss。我在这里读过类似的帖子,但它们似乎不对:NodeJS Express not service '/socket.io/socket.io.js'
这是完整的应用程序列表:
var application_root = __dirname,
express = require('express'),
//Web framework
path = require('path'),
//Utilities for dealing with file paths
pg = require('pg'); //Postgres integration
//Create server
var app = express();
// Configure server
app.configure(function () {
//parses request body and populates request.body
app.use(express.bodyParser());
//checks request.body for HTTP method overrides
app.use(express.methodOverride());
//perform route lookup based on url and HTTP method
app.use(app.router);
//Where to serve static content
app.use(express.static(path.join(application_root, 'public')));
//Show all errors in …Run Code Online (Sandbox Code Playgroud) 我试图弄清楚如何在S3上执行相当于fs.exists()的操作.
我成功获取了存储桶的内容,但我无法弄清楚如何在存储桶中存在特定文件时询问S3(我不想下载整个文件列表并检查客户端,因为也有很多文件).
供参考:S3.GET上的AWS2JS文档
var s3 = require('aws2js').load('s3', appConfig.awsAccessKeyId, appConfig.awsSecretAccessKey);
s3.setBucket(appConfig.awsBucketName);
var folder = encodeURI('reports');
var url = '?prefix=' + folder;
s3.get(url,{Contents: null, Key: 'reports/emot_cat_r1180341142.png'},'xml', function (error, data) {
console.log("Error",error);
console.log("Data",data);
true.should.be.true;
done();
});
Run Code Online (Sandbox Code Playgroud)
输出
{姓名:'umusergen',前缀:'报告',标记:{},MaxKeys:'1000',IsTruncated:'false',内容:[{Key:'reports /',LastModified:'2013-06-16T17: 44:25.000Z',ETag:'"d41d8cd98f00b204e9800998ecf8427e"',大小:'0',所有者:[Object],StorageClass:'STANDARD'},{Key:'reports/emot_cat_r1180341142.png',LastModified:'2013-06 -16T23:18:59.000Z',ETag:'"0b04aa9146d36a447019b1aa94be7eb3"',大小:'26374',所有者:[Object],StorageClass:'STANDARD'},{Key:'reports/polarity_r1180341142.png',LastModified:' 2013-06-16T23:19:00.000Z',ETag:'"22fd521e0a5e858040082d0d47078532"',大小:'23091',所有者:[对象],StorageClass:'标准'},{Key:'reports/wordcloud_r1180341142.png',LastModified:'2013-06-16T23:19:07.000Z',ETag :'"9f7ee9d2fdce5f460b2c42444edd6efc"',大小:'167164',所有者:[Object],StorageClass:'STANDARD'}],'@':{xmlns:{xmlns:'StorageClass:'STANDARD'}],'@':{xmlns:{xmlns:'StorageClass:'STANDARD'}],'@':{xmlns:{xmlns:'http://s3.amazonaws.com/doc/2006-03-01/ '}}}
"{Contents:null,Key:'[file path/name]'}"是我尝试解释上面引用的API指令.
如您所见,它只是枚举存储桶的内容,但我需要API调用来检查特定文件是否存在.
有人可以帮忙吗?我对这一切都很陌生.
有谁知道是否有一种简单的方法来增加Bootstrap工具提示的工具提示偏移量?文档中没有任何内容.在某些情况下,工具提示会遮挡目标区域并阻止点击.
我是nodejs的新手,但我很高兴客户端和服务器之间存在共同语言和习惯用语的可能性.
有没有人知道nodejs框架为我们在带有backbonejs的客户端上使用的模型提供相同的OO习语和类功能?我发现在主干模型和集合之间切换以及在节点中手动滚动javascript类是很不耐烦的.
控制器被发射器和回调取代,当然没有视图,但我是否想要为模型客户端和服务器端提供一致的OO范例?我是否应该使用与数据库无关的OOP来实现Redis等目标?
如果这个问题对于SE来说太模糊,请随意关闭我.
我试图弄清楚当这行代码完成时如何触发一个函数:
fs.createReadStream(req.files.file.path)
.pipe(fs.createWriteStream(__dirname+'/public/tmp/'+req.files.file.name));
Run Code Online (Sandbox Code Playgroud)
我想我一定很密集,但是这些 fs 函数都不带有回调是否正确?如何复制req.files.file.path到目标文件夹并截取完成?
http://nodejs.org/api/fs.html#fs_fs_createwritestream_path_options
最后,stackoverflow报告了一个实际的堆栈溢出错误!
我在下面的代码中收到以下错误:
var m = pathA.substr(-(pathB.length)); // var
^
RangeError: Maximum call stack size exceeded
Run Code Online (Sandbox Code Playgroud)
我很确定这里的答案是在底部报道的:
https://github.com/caolan/async/issues/75
但是,我不明白如何修复我的代码.据我所知,我不是在异步函数中调用同步函数.任何人都可以澄清我必须做些什么来修复我的代码?
我正在迭代结果集的交叉产品,以连接路径字符串,其中一个是另一个的子字符串.
var i = 0;
async.eachSeries(results.rows, function (r, next2a) {
var pathA = results.rows[i].id_path;
var j = 0;
async.eachSeries(results.rows, function (r2, next1a) {
var pathB = results.rows[j].id_path;
//check i=j
if (!(i == j)) {
var m = pathA.substr(-(pathB.length)); // var m = (pathA || '').substr(-((pathB) ? pathB.length : 0));
if ((m == pathB) && (pathA.length > pathB.length)) {
logger.log('DEBUG', (pathB + ' …Run Code Online (Sandbox Code Playgroud) 我对R有点新鲜 - 我一直试图将R脚本包装成一个函数,所以我可以从Rserve中调用它.有谁知道为什么ggplot2不能在函数内部工作但在它之外工作得很好?
png('polarity.png')
ggplot(sent_df, aes(x=polarity)) +
geom_bar(aes(y=..count.., fill=polarity)) +
scale_fill_brewer(palette="RdGy") +
labs(x="polarity categories", y="number of conversatins") +
opts(title = "Sentiment Analysis of Posts on Facebook\n(classification by polarity)",
plot.title = theme_text(size=12))
dev.off()
Run Code Online (Sandbox Code Playgroud)
这可能与它有关ggplot2在函数或S4中使用时产生错误但是我没有得到我能检测到的错误 - 我只是没有输出.
任何人都知道为什么这不起作用?我试图让_.template使用大括号.
_.templateSettings = { //change delimiter to <$ $>
interpolate : /\<\$(.+?)\$\>/g
};
var list = "<$ _.each(people, function(name) { $> <li><$ name $> </li> <$ }); $>";
var html=_.template(list);
console.log(html({people : ['moe', 'curly', 'larry']}));
Run Code Online (Sandbox Code Playgroud)
它在))产生以下语法错误错误:
((__t =(. each(people,function(name){))== null?'':_ t)+
以下是Underscore文档所说的内容:
如果ERB样式的分隔符不是您的茶,您可以更改Underscore的模板设置以使用不同的符号来设置插值代码.定义一个插值正则表达式以匹配应该逐字插入的表达式,一个转义正则表达式匹配应该在HTML转义后插入的表达式,以及一个评估正则表达式来匹配应该在不插入结果字符串的情况下进行评估的表达式.您可以定义或省略三者的任意组合.例如,要执行Mustache.js样式模板:
_.templateSettings = {interpolate:/ {({.+?)}}}}}};
var template = _.template("Hello {{name}}!"); 模板({name:"Mustache"}); >"Hello Moustache!"
有没有办法在Express上为SSL设置自定义端口?这仅用于开发目的.我在80/443上有一个Apache/PHP项目.
我已经尝试过本教程 http://www.hacksparrow.com/express-js-https.html
但老实说,我无法让它发挥作用.如果有人可以发布配置Express的正确方法来执行此操作,那将是非常棒的.这是我的服务器配置:
var hskey = fs.readFileSync('mywebsite-key.pem');
var hscert = fs.readFileSync('mywebsite-cert.pem')
var options = {
key: hskey,
cert: hscert
};
//Create server
var app = express(options);
// Configure server
app.configure(function () {
//parses request body and populates request.body
app.use(express.bodyParser());
//checks request.body for HTTP method overrides
app.use(express.methodOverride());
//perform route lookup based on url and HTTP method
app.use(app.router);
//Where to serve static content
app.use(express.static(path.join(application_root, 'public')));
//Show all errors in development
app.use(express.errorHandler({
dumpExceptions: true,
showStack: true
}));
});
//Start server
var port …Run Code Online (Sandbox Code Playgroud) 我使用 Passport.js local-strategy 进行身份验证。我还需要用户使用 Facebook、Twitter 和 G+ 进行身份验证,但不是作为身份验证替代方案,而是使用户能够从这些服务中检索其内容。
正如所写的,每个身份验证策略都会将一个用户对象写入请求对象。这会导致我的 root 用户注销。有没有办法利用护照来实现这些额外的身份验证策略,但不覆盖用户对象?
这是规范的例子:
var passport = require('passport')
, TwitterStrategy = require('passport-twitter').Strategy;
passport.use(new TwitterStrategy({
consumerKey: TWITTER_CONSUMER_KEY,
consumerSecret: TWITTER_CONSUMER_SECRET,
callbackURL: "http://www.example.com/auth/twitter/callback"
},
function(token, tokenSecret, profile, done) {
User.findOrCreate(..., function(err, user) {
if (err) { return done(err); }
done(null, user); //trashes my existing user object
});
}
));
Run Code Online (Sandbox Code Playgroud) 我需要一些帮助来了解如何从经过验证的用户中提取推文.对不起开放式问题,但是这里有:
https://github.com/ttezel/twit使您可以检索任何Twitter句柄的推文.但在我的用例中,我需要用户登录他们的Twitter帐户并检索他们的最新推文,以便我知道他们是他们的,而不是别人的.
我正在使用angular.js和node.js - 非常感谢.我甚至不知道这是我应该在客户端做什么,还是在服务器上.
我需要遍历 22GB 压缩文件中的行。展开后,文件为 250GB。(这是Google Freebase db dump)
我对流不太了解。有没有办法在我走的时候流式传输文件并对其进行压缩?
这是另一种方式:
var r = fs.createReadStream('file.txt');
var z = zlib.createGzip();
var w = fs.createWriteStream('file.txt.gz');
r.pipe(z).pipe(w);
Run Code Online (Sandbox Code Playgroud) node.js ×9
javascript ×4
express ×2
amazon-s3 ×1
angularjs ×1
asynchronous ×1
backbone.js ×1
ggplot2 ×1
gunzip ×1
models ×1
oop ×1
passport.js ×1
r ×1
socket.io ×1
ssl ×1
stream ×1
templates ×1
twitter ×1