我对在Node.js中读取文件感到很困惑.
fs.open('./start.html', 'r', function(err, fileToRead){
if (!err){
fs.readFile(fileToRead, {encoding: 'utf-8'}, function(err,data){
if (!err){
console.log('received data: ' + data);
response.writeHead(200, {'Content-Type': 'text/html'});
response.write(data);
response.end();
}else{
console.log(err);
}
});
}else{
console.log(err);
}
});
Run Code Online (Sandbox Code Playgroud)
文件start.html与尝试打开并读取它的文件位于同一目录中.
但是,在控制台中,我得到:
{[错误:ENOENT,打开'./start.html']错误:34,代码:'ENOENT',路径:'./ start.html'}
有任何想法吗?
我正在尝试安装最近从github移动到bitbucket的私有包.
npm install git@bitbucket.org:owner/repo.git
Run Code Online (Sandbox Code Playgroud)
结束了
npm http GET https://registry.npmjs.org/git
Run Code Online (Sandbox Code Playgroud)
(注意网址中的包)有这个错误:
错误的ERR!notarget未找到兼容的版本:git@'bitbucket.org:flyvictor/fortune-secruity.git'
(注意'事后@)
我试图逃避@,用引号包装repo名称,但总是得到相同的结果.
对于github,我们使用格式化的网址git://github.com/owner/repo#v.v.v,这样可以正常工作!但是如果我对bitbucket npm使用相同的语法就会挂起什么都不做.
任何的想法?
ps键,访问权限,所以一个是正确的.我可以为这些repos做贡献,用git克隆它们,但不能用npm install克隆它们.安装得好的Github软件包也是私有的.
这个小提琴说明了问题http://jsfiddle.net/LAqeX/2/
我想创建一个包含页面一部分并隐藏它的指令.我想使用ng-if删除不必要的绑定.但是一些黑魔法发生了.
这是我最喜欢的指令代码.
app.directive('withIf', function(){
return {
restrict: 'E',
scope: {
title: '@'
},
transclude: true,
template: '<div>' +
'<p ng-click="visible = !visible">{{title}}</p>' +
'<div ng-if="visible" ng-transclude></div>'+
'</div>',
link: function(scope){
scope.visible = false;
}
}
});
Run Code Online (Sandbox Code Playgroud)
它应该创建两个范围:
然而,ng-if使得被转移的范围有点脱离现实,并且trasncluded范围不会从控制器继承.请看小提琴,它说明问题非常明确.
任何想法在那里发生了什么以及如何解决它?
UPDATE
我似乎已经找到了范围链看起来破碎的原因.由ng-if创建的范围属于withIf指令isolate分支.所以它永远不知道控制器的范围是否存在.但问题仍然是相同的 - 如何在这种情况下使用ng-if.
我想知道,有没有办法用对象或函数来引用状态?
只是为了从状态定义中分离视图.例如,如果我更改州名,我不必在我的视图中随处更改它.
请考虑以下架构
Var Schema = new Schema({
username: {Type: String},
...
...
contacts: {
email: {Type: String},
skype: {Type: String}
}
})
Run Code Online (Sandbox Code Playgroud)
由于每个用户只能说一个电子邮件和Skype,我不想使用带有联系人的数组.
丢弃数据库查询和错误处理我尝试做类似的事情
// var user is the user document found by id
var newValue = 'new@new.new';
user['username'] = newValue;
user['contacts.$.email'] = newValue;
console.log(user['username']); // logs new@new.new
console.log(user['contacts.$.email']); // logs new@new.new
user.save(...);
Run Code Online (Sandbox Code Playgroud)
没有错误发生,用户名成功更新,而联系人子文档仍为空.我在那里想念什么?
我正在使用Angular构建一个滚动指令,并看到元素高度的奇怪行为.它们在调整大小时不会改变.我去了最简单的普通JS,但这个bug还在这里.这个小提琴说明了它http://jsfiddle.net/Y8B86/1/.尝试调整窗口大小并多次单击内容并查看控制台.
function rebuild() {
var transcluded = document.getElementsByTagName('div')[0];
scope.scrollHeight = transcluded.scrollHeight;
scope.offsetHeight = transcluded.offsetHeight;
scope.clientHeight = transcluded.clientHeight;
}
Run Code Online (Sandbox Code Playgroud)
该函数负责读取值.Angular的唯一区别在于,而不是document.getElementsByTagName我做element.children()[n]内部元素.此外,当窗口足够小时,元素不响应滚动.ScrollTop不会改变.
问题是窗口报告调整大小后为什么height没有更新?
我正在尝试动态读取模板中 for 循环内的文件内容。但一旦我尝试host在文件路径内使用变量,它就会失败。
一些背景:
groups.docker_hosts。file content xx主机xx索引的内容例如这个例子就可以正常工作:
template.j2
{% for host in groups.docker_hosts %}
"{{lookup('file', '{{inventory_dir}}/pki/dev-docker01/test')}}"
{% endfor %}
result
"file content 01"
"file content 01"
"file content 01"
Run Code Online (Sandbox Code Playgroud)
这也可以正确渲染每个主机
template.j2
{% for host in groups.docker_hosts %}
"{{host}}"
{% endfor %}
result:
"dev-docker01"
"dev-docker02"
"dev-docker03"
Run Code Online (Sandbox Code Playgroud)
但是一旦我尝试使用host内部文件路径,我就会收到此错误"msg": "AnsibleUndefinedVariable: 'host' is undefined"
{% for host in groups.mongo_hosts %}
"{{lookup('file', '{{inventory_dir}}/pki/{{host}}/test')}}"
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
似乎它正在新的隔离上下文中运行,该上下文只能访问全局变量。知道如何真正让它host正确地看到变量吗?
我正在尝试在Ubuntu 14.04上重启(它正在运行)MongoDB,但是在日志中继续使用此行失败error getting file /srv/mongodb/keyfile: Permission denied
这是目录结构
drwxr-xr-x 3 root root 4096 Jan 31 05:54 srv/
drw------- 2 mongodb mongodb 4096 Jan 31 07:07 mongodb/
-rw------- 1 mongodb mongodb 876 Jan 31 07:07 keyfile
Run Code Online (Sandbox Code Playgroud)
运行的用户mongod是"mongodb",组"mongodb"因此它应该可供阅读.
如果我改变的权限mongodb/,并keyfile以-rw-r--r--成为可读,但蒙戈声称它太宽容,当然
用这个东西去煮饭了.有什么建议在这里有什么问题吗?