我想在Docker容器中将我的简单Node服务器作为后台进程运行,但是当我尝试使用它启动它时,forever我得到以下信息:
fs.js:432
return binding.open(pathModule._makeLong(path), stringToFlags(flags), mode);
^
Error: ENOENT, no such file or directory '/.forever/9Spa.log'
Run Code Online (Sandbox Code Playgroud)
因此,我尝试仅.forever在当前工作目录中创建一个名为的文件夹,但随后出现了几乎相同的错误(*.log每次运行该文件时,其名称都与预期的不同)。
如果我不使用服务器forever就运行它,则不会出现任何错误。例如:
node server
Run Code Online (Sandbox Code Playgroud)
要么
npm start
Run Code Online (Sandbox Code Playgroud)
两者都可以正常工作,但是当然不能在后台运行。
我在运行时遇到相同的错误
forever list
Run Code Online (Sandbox Code Playgroud)
因此,请明确发出此问题,forever而不是我的服务器代码。
npm list -g显示forever已安装。
我Ubuntu 14.04.1 LTS在Docker容器中使用映像。
我愿意提出建议。
我终于forever要运行在该.forever文件夹中/home/testuser及其内部的pids文件夹,然后运行以下命令:
forever start -p /home/testuser/.forever --pidFile /home/testuser/.forever/pids/server.pid server.js
Run Code Online (Sandbox Code Playgroud)
根据文档
-p PATH所有永久相关文件(PID文件等)的基本路径
但是,事实并非如此。我被迫为--pidFile
因此,万岁,我的服务器正在作为后台进程运行。但是以下内容仍然中断:
forever stop server.js
Run Code Online (Sandbox Code Playgroud)
=>
/usr/local/lib/node_modules/forever/lib/forever.js:634
var …
我对 GitLab 非常陌生,正在尝试为我的项目设置 CI/CD 系统。
我的.gitlab-ci.yml文件如下:
image: node:10.15.3
cache:
paths:
- node_modules/
before_script:
- node -v
- npm install
stages:
- test
all-tests:
stage: test
script:
- npm run lint
- npm run test:unit:cov
- npm run test:server
Run Code Online (Sandbox Code Playgroud)
但是,该node -v行6.12.0没有输出10.15.3并且我的测试失败,因为节点版本错误。
如何告诉 GitLab CI 使用 Node 10.15.3?
我正在构建一个简单的网络表单,我的一个输入字段根本不会按照原样穿在左边,而是位于前一个表单字段的右侧.我把表单简化为一个非常简单的文本案例.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>Test</title>
<style>
#new-thing {
width: 450px;
}
#new-thing label {
clear: left;
float: left;
width: 120px;
font-weight: bold;
}
#new-thing input {
width: 250px;
margin-bottom: .5em;
}
</style>
</head>
<body>
<div id='new-thing'>
<form>
<label for='name'>Thing Name:</label>
<input id='name'>
<label for='first-thing'>First:</label>
<input id='first-thing' style='width:6em;'>
<label for='second-thing'>Second:</label>
<input id='second-thing' style='width:6em;'>
</form>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
第二个字段应该位于第一个字段下方,与标签"Second:"相邻,但它位于第一个字段的右侧.看到这个屏幕快照:

我错过了什么?
我正在循环中运行一个Sinatra应用程序EventMachine.run,在我的ws.onopen方法中,我希望检查handshake标头的cookie,以确保传入的请求来自我的webapp的注册用户.
我的Sinatra应用包括以下内容:
use Rack::Session::Cookie, :key => COOKIE_KEY,
:path => '/',
:expire_after => 2592000, #30 days
:secret => COOKIE_SECRET
Run Code Online (Sandbox Code Playgroud)
我的ws.onopen方法看起来像这样(修剪)
ws.onopen { |handshake|
cookie, bakesale = handshake.headers['Cookie'].split('=')
rack_cookie = Rack::Session::Cookie.new(MyApp, {
:key => COOKIE_KEY,
:path => '/',
:expire_after => 2592000, #30 days
:secret => COOKIE_SECRET
})
decoded = rack_cookie.coder.decode(bakesale)
puts "decoded: #{decoded}"
}
Run Code Online (Sandbox Code Playgroud)
cookie匹配的价值我COOKIE_KEY很好,但值decoded是nil
我该如何解码传入的cookie数据?
- 一段时间以后 -
我把上面的内容略微改为
ws.onopen { |handshake|
cookie, …Run Code Online (Sandbox Code Playgroud) 我正在建立一个使用4种不同语言设计的网站Sinatra,并使用和使用I18n库来插入本地化的内容,但是我想知道如何处理HTML5诸如description和的标准元标记keywords,以及Google和其他搜索引擎如何处理这些标记?我将这些标签中的内容本地化。
理想情况下,我希望能够通过sitemap.xml文件或其他信息(尽管我不确定甚至可能)告诉Google(该网站)可以用这四种语言进行解析,因此可以正确地本地化关键字和对用户的描述,具体取决于他们的区域设置偏好。
同样,我希望能够通过定位相关的og元标记和twitter:card`元标记来定位发布到Twitter和Facebook的信息。
注意:无论选择哪种语言,实际的页面URL都将相同,本地化的内容将在Slim模板本身中呈现。
例如,是否足以指定
html lang='de_DE'
Run Code Online (Sandbox Code Playgroud)
我正在寻求一种最佳实践和DRY方式,以便为我的国际用户获得很好的本地化搜索结果摘要信息。
我正在升级到Sails.js版本0.10,现在需要使用Skipper来管理我的文件上传.
当我上传文件时,我使用UUID为它生成一个新名称,并将其保存在public/files /文件夹中(当我将这一切全部工作时会改变,但现在测试很好)
我将原始名称和上传的名称+路径保存到Mongo数据库中.
这一切都非常简单,Sails v0.9.x但使用Skipper我无法弄清楚如何读取新的文件名和路径.(显然,如果我能读到我可以构建路径的名称,那么它实际上只是我需要的名称)
我的控制器看起来像这样
var uuid = require('node-uuid'),
path = require('path'),
blobAdapter = require('skipper-disk');
module.exports = {
upload: function(req, res) {
var receiver = blobAdapter().receive({
dirname: sails.config.appPath + "/public/files/",
saveAs: function(file) {
var filename = file.filename,
newName = uuid.v4() + path.extname(filename);
return newName;
}
}),
results = [];
req.file('docs').upload(receiver, function (err, files) {
if (err) return res.serverError(err);
async.forEach(files, function(file, next) {
Document.create({
name: file.filename,
size: file.size,
localName: // ***** …Run Code Online (Sandbox Code Playgroud) 我正在为新加坡,马来西亚,台湾和中国的客户建立一个Rails 4站点.
马来西亚华语的语言环境代码是zh-MY.
我想保留一组基础zh-CN(简体中文)语言环境文件,并用于zh-MY回退zh-CN.
只是有一个zh不正确的zh-TW(繁体中文)是台湾使用的,并且它和之间有很大的不同zh-CN.
所以这是我的config/application.rb文件根据Rails指南.
require File.expand_path('../boot', __FILE__)
require 'rails/all'
require "i18n/backend/fallbacks"
module MyAwesomeApp
class Application < Rails::Application
I18n::Backend::Simple.send(:include, I18n::Backend::Fallbacks)
# all translations from config/locales/**/*.rb,yml are auto loaded.
config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '**', '*.{rb,yml}')]
# The default locale is :en
config.i18n.default_locale = :en
# See http://guides.rubyonrails.org/i18n.html#localized-views for a discussion of
# how language codes fall-back.
config.i18n.available_locales = [:en, :'zh-CN', :'zh-TW', :'en-SG', …Run Code Online (Sandbox Code Playgroud) 我需要一个表的页脚Numbers来计算列中第一个值和列中最后一个值之间的差异.最后一个值可能大于或小于第一个值.如何引用列的最后填充值?
在我使用的Node应用程序中import,箭头函数,扩展运算符,对象解构let,和const.
在我的package.json我包括以下内容
"engines": {
"node": ">=6.9.4",
"npm": "^3"
},
Run Code Online (Sandbox Code Playgroud)
以及
"babel": {
"presets": [
"node6",
"stage-0"
]
},
Run Code Online (Sandbox Code Playgroud)
和
"scripts": {
"clean": "rm -rf bin/",
"start": "node bin/index.js",
"babel": "babel src --out-dir bin",
"build": "npm run clean && npm run babel",
"dev": "babel-node src/index.js",
"test": "find ./test -name '*_spec.js' | NODE_ENV=test xargs mocha --compilers js:babel-core/register --require ./test/test_helper.js"
},
Run Code Online (Sandbox Code Playgroud)
代码工作和转换,但我注意到,看到转换后的文件,它正在转换let为var,这似乎毫无意义,因为Node 6.9.4完全支持let本机的使用.
什么是最小的babel插件集,允许我的代码在Node 6.9.4或更高版本下运行,并最大限度地使用其本机语言功能?
gitlab-ci.yml我有一份喜欢的工作
build and push:
stage: push
only:
- master
script:
- gcloud docker -- push $IMAGE_TAG
Run Code Online (Sandbox Code Playgroud)
这个想法是,它应该只在分支是主分支时运行,但我也只希望它在回购是app/而不是主分支时运行dave/
文档说
存储库路径可用于仅针对父存储库而不是分支执行作业:
job:
only:
- branches@gitlab-org/gitlab-ce
Run Code Online (Sandbox Code Playgroud)
但我无法让它发挥作用。如果我们的 gitlab 服务器是gitlab.myco.io并且应用程序是app/my-project-name我想我可以把
job:
only:
- branches@gitlab-myco-io/app/my-project-name/master
Run Code Online (Sandbox Code Playgroud)
但这似乎不起作用。
这样做的正确方法是什么?
node.js ×3
gitlab ×2
javascript ×2
ruby ×2
alignment ×1
babeljs ×1
branch ×1
cookies ×1
css ×1
docker ×1
ecmascript-6 ×1
eventmachine ×1
file-upload ×1
forever ×1
forms ×1
git ×1
git-fork ×1
gitlab-ci ×1
html5 ×1
localization ×1
macos ×1
meta-tags ×1
rack ×1
rails-i18n ×1
sails.js ×1
skipper ×1
transpiler ×1