所以我第一次部署了一个带节点和pm2的站点,我要回去做一些优化并阅读最佳实践等.
我读到你可以通过设置获得很多好处NODE_ENV=production.
我在pm2文档中发现了这个:
[process.json]
"env_production" : {
"NODE_ENV": "production"
}
...
$ pm2 start process.json --env production
Run Code Online (Sandbox Code Playgroud)
所以,我做到了,但我不知道它是否有效.在试图找出如何检查它时,我学会了尝试:
$ node
> process.env.NODE_ENV
> undefined
Run Code Online (Sandbox Code Playgroud)
所以,这不是一个好兆头......但是,由于我对低级别的东西的工作原理有限,我猜可能pm2会将每个应用程序作为一个单独的节点进程启动?所以,当我尝试检查它时,我可能不是在正确的过程中.
另外,我不知道是否必须创建一个新的〜/ .pm2/dump.pm2文件,因为可能只要覆盖我设置的选项?(因为我用过pm2 startup).
如何检查我的pm2应用程序的NODE_ENV是否已设置?
我已经用--inspect旗帜启动了我的Node应用程序,我在网址上使用了Chrome的Node Dev Tools about:inspect; 效果很好.
问题是我也在使用PM2节点进程管理器来监视我的文件并在发生更改时自动重启我的Node进程,正如我通常在开发中那样,每次我保存文件时,Node Dev Tools窗口都会成为焦点.
我在开发工具设置中找不到任何相关内容.
我在Chrome 62.0.3202.89,Ubuntu 16.04 64位,如果这很重要.
附带问题:是否可以在标签中使用Chrome开发工具而不是浮动窗口?我以为这曾经是可能的,但现在我找不到选项了.
我在MySQL中有一个表,其中包含十进制,长度为9,无符号的字段.我用它来代价.
在我插入数据并查询它之后,它全部被舍入并且小数已被删除.
我很困惑为什么.
疑难解答?
主持人:web.com
phpMyAdmin版本:2.11.10.1
MySQL客户端版本:5.0.95
我想使用cookie来保持用户登录.
在这个页面在这里,他们说
要使用cookie进行身份验证,请将以下内容添加到server.js(引导前):
Run Code Online (Sandbox Code Playgroud)app.use(loopback.token({ model: app.models.accessToken }));
看似简单.我认为在登录过程中,Loopback会自动设置cookie,但它仍然无法正常工作,我在Chrome开发工具中检查我的cookie并且没有设置.
我错过了什么吗?否则,什么是挂钩登录方法以设置cookie /标头的最佳方法?
我在这里找到了关于这个loopback.token()方法的文档,它确切地说明了它检查令牌的位置.
可能重复:
使用javascript更改SVG图像颜色
当我将鼠标悬停在SVG图像上时,我想更改它的填充.
现在我有一个从Illustrator导出到SVG的黑色问号.我可以使用img标签放在我的页面上,它显示正常,但我不知道如何更改代码中的颜色.
以前,我将 NPM 用于服务器端,而 Bower 用于前端。NPM 将安装到该node_modules/目录,我必须.bowerrc将这些包安装到public/lib.
现在我已经开始使用 Yarn 而不是 NPM;并且由于它们几乎是 1:1 兼容的,因此这是一个平滑的变化.. 但是,现在我想知道我是否可以放弃 Bower 而只使用 Yarn 来处理所有事情。但是我没有看到(在 NPM 或 Yarn 中)将普通包安装到 node_modules 的方法,但是然后有一种单独的选项可以将一些包放入public/......类似于该--dev选项的东西,但它会是yarn add jquery --public. 这样的东西存在吗?
当然,一种选择是将所有软件包安装到public/目录中,但我认为这是一种不好的做法(如果我错了,请纠正我)。
另一种选择可能是package.json在public/文件夹中有一个单独的文件夹并在其中为前端包运行单独的 Yarn 命令,但我认为它不太方便;更容易出错。
我试图audio在组件中获取一个元素。起初我是用老式的方式做的:
$player: HTMLAudioElement;
...
ngOnInit() {
this.$player = document.getElementById('stream')
}
Run Code Online (Sandbox Code Playgroud)
但我想做The Angular Way™,所以我想我应该使用@ViewChild. 但它返回 anElementRef并且我必须反复钻取该nativeElement属性才能实际作用于该元素,而且它看起来更混乱。
我就喜欢做这样的事情:
@ViewChild('stream') $player: HTMLAudioElement;
但这不起作用。
通常在我的Backbone代码中,我遇到了一些情况,我会将一个闭包传递给某个函数并丢失'this'的上下文.
我的解决方案已经有一段时间了,我做过其他人做过的事情:
var self = this;
this.deferred.done(function () {
self.render();
});
Run Code Online (Sandbox Code Playgroud)
或者实际上我切换到了_this = this,但那不是重点.它有效,但感觉很难看,我有时必须经常这样做.所以我试图想出一个更好的方法来做到这一点.我知道我可以这样做:
this.deferred.done(function () {
this.render();
}.apply(this));
Run Code Online (Sandbox Code Playgroud)
我想我也可以使用Underscore来做到这一点:
this.deferred.done(_.bind(function () {
self.render();
}, this));
Run Code Online (Sandbox Code Playgroud)
这个apply方法看起来最简洁,但我觉得它有副作用(我只是不知道它是什么).
编辑:
看看这个JSbin,我使用的应用类似于我提到的:http://jsbin.com/qobumu/edit?js,console
它工作,但它同时抛出一个错误.如果我更改apply为bind,它可以工作,不会抛出错误.
我看到你可以这样做:
myUrl.searchParams.set('param1', 'value');
myUrl.searchParams.set('param2', 'value');
...
Run Code Online (Sandbox Code Playgroud)
我想做的更像是:
myUrl.searchParams.set({
param1: 'value',
param2: 'value
});
Run Code Online (Sandbox Code Playgroud)
但这不起作用。
我在文档中看到您可以使用URLSearchParams该类来执行此操作:
myParams = new URLSearchParams({
param1: 'value',
param2: 'value
});
Run Code Online (Sandbox Code Playgroud)
但我想不通的是如何使用它。这些不起作用:
myUrl.searchParams = myParams;
Run Code Online (Sandbox Code Playgroud)
或者
myUrl.searchParams.set(myParams);
Run Code Online (Sandbox Code Playgroud)
node.js ×5
javascript ×4
express ×2
angular ×1
backbone.js ×1
css ×1
html ×1
loopbackjs ×1
mysql ×1
npm ×1
php ×1
pm2 ×1
sql ×1
svg ×1
typescript ×1
url ×1
viewchild ×1
yarnpkg ×1