小编los*_*ion的帖子

Nodejs/express,优雅地关闭

我有一个nodejs服务器运行express来服务器输出http调用.如果出现问题,是否有建议的方法来优雅地关闭服务器?我应该以某种方式让服务器运行吗?

IE在一个未被捕获的异常上服务器刚停止,我认为这会杀死已连接的客户端而不是将它们交回响应.

我是不是该:

  1. 在我允许服务器死亡(然后重新启动)之前,等待所有http连接完成.
  2. 或者我应该尝试阻止服务器永远死亡?

这是对的吗?

process.on('exit', function () {
  console.log('About to exit, waiting for remaining connections to complete');
  app.close();
});
Run Code Online (Sandbox Code Playgroud)

在这种情况下,可能会抛出错误,使服务器处于未定义状态,服务器将继续完成剩余连接.

是否有任何好方法来处理错误继续运行或我应该让服务器死并重新启动?

node.js express

11
推荐指数
2
解决办法
1万
查看次数

来自NodeJS或mongoose的mongodump/mongorestore

想知道是否可以从nodejs中运行mongodump/mongorestore.可能不是真正的猫鼬,因为那不是真正的猫鼬.但是想知道是否有办法从mongodb nodejs驱动程序执行这些命令.

看起来我可以做到这一点作为最后的手段: 如何从node.js以编程方式执行mongodump命令?

mongoose mongodb node.js

10
推荐指数
1
解决办法
9357
查看次数

Mongo mongod init.d脚本无法在CentOS上运行

我试图弄清楚为什么提供的init.d脚本不能在CentOS上运行.我尝试手动启动它:

/etc/init.d/mongod start
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误:

Starting mongod: /usr/bin/dirname: extra operand `2>&1.pid'
Try `/usr/bin/dirname --help' for more information.
Run Code Online (Sandbox Code Playgroud)

我查看了它试图启动的脚本:

  daemon --user "$MONGO_USER" "$NUMACTL $mongod $OPTIONS >/dev/null 2>&1"
Run Code Online (Sandbox Code Playgroud)

所以我看了mongod var的定义:

mongod=${MONGOD-/usr/bin/mongod}
Run Code Online (Sandbox Code Playgroud)

还尝试过:

service mongod start
Run Code Online (Sandbox Code Playgroud)

同样的错误.

不知道我设置错了,但我已经确认我有最新的脚本,但我无法启动mongod进程.

有任何想法吗???

init.d mongodb

10
推荐指数
1
解决办法
7647
查看次数

材料按钮的禁用颜色状态

材料规格显示禁用的按钮状态,显示为灰色。

https://www.material.io/design/components/buttons.html#toggle-button

我正在从Android的材质组件中使用MaterialButton:https//www.material.io/develop/android/components/material-button/

但是,将按钮设置为禁用时,按钮的颜色/色调不会改变。

<com.google.android.material.button.MaterialButton
    android:id="@+id/disabled_material_button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:enabled="false"
    android:text="@string/button_label_disabled"/>
Run Code Online (Sandbox Code Playgroud)

只是默认情况下未在Material Android组件中实现?材料组件是否定义了禁用的按钮状态列表?

android colors android-layout android-button material-design

10
推荐指数
4
解决办法
2943
查看次数

运行mongodb脚本一次以插入初始数据

我的节点服务器存在鸡和蛋的问题,您需要让某个用户具有某个角色,该角色具有某些权限才能登录并开始创建更多用户,角色等.

我想初始化数据库,以便创建一个初始ADMIN角色和具有该角色的初始管理员用户.

IE以脚本开头并遇到问题:

use mydb

db.roles.insert({
  name: "ADMIN_ROLE",
  description: "Administrative role",
  permissions: ['ALL']
});

db.users.insert({
  username: "admin",
  password: "password",
  role: ??? (get ADMIN_ROLE _id from above)
});
Run Code Online (Sandbox Code Playgroud)

基本上我遇到了几个问题:1.不确定我是否可以像这样编写脚本.2.如何获取ADMIN_ROLE id以存储在新的admin用户中

另一个想法:编写一个连接到mongodb并插入正确内容的快速节点应用程序.以前做过这个的人.

而另一个:节点/ mongo是否存在类似ruby rake的东西.IE初始种子可能不是我需要"手动"搞乱的唯一数据.IE我可能需要在某个时间点修补数据库.将补丁#1创建为初始种子会很好,然后能够在必要时编写未来的补丁并且能够.IE有什么像rake迁移?

关于如何为mongo数据库播种的任何其他想法?

patch mongoose mongodb node.js

9
推荐指数
1
解决办法
1万
查看次数

OSX推出了针对节点永远进程的plist

我正在尝试为我的节点服务器编写一个launchd.plist文件.我正在使用永远运行我的节点服务器.我希望服务器在启动时启动.我还想等待mongodb launchd plist先行.

我使用自制软件安装了mongobb,它已经附带了launchd.plist.我执行了以下操作:

$ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mongodb.plist
Run Code Online (Sandbox Code Playgroud)

mongodb的plist是:

<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Label</key>
  <string>homebrew.mxcl.mongodb</string>
  <key>ProgramArguments</key>
  <array>
    <string>/usr/local/opt/mongodb/mongod</string>
    <string>run</string>
    <string>--config</string>
    <string>/usr/local/etc/mongod.conf</string>
  </array>
  <key>RunAtLoad</key>
  <true/>
  <key>KeepAlive</key>
  <false/>
  <key>WorkingDirectory</key>
  <string>/usr/local</string>
  <key>StandardErrorPath</key>
  <string>/usr/local/var/log/mongodb/output.log</string>
  <key>StandardOutPath</key>
  <string>/usr/local/var/log/mongodb/output.log</string>
  <key>HardResourceLimits</key>
  <dict>
    <key>NumberOfFiles</key>
    <integer>1024</integer>
  </dict>
  <key>SoftResourceLimits</key>
  <dict>
    <key>NumberOfFiles</key>
    <integer>1024</integer>
  </dict>
</dict>
</plist>
Run Code Online (Sandbox Code Playgroud)

如果我关闭计算机并重新启动mongodb应该启动它.

但是我的节点服务器没有启动.有任何想法吗?

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>KeepAlive</key>
        <dict>
            <key>SuccessfulExit</key>
            <false/>
        </dict>
        <key>Label</key>
        <string>com.test.app</string>
        <key>ProgramArguments</key>
        <array>
            <string>/usr/local/bin/forever</string>
            <string>-a</string>
            <string>-l</string>
            <string>/var/log/app/app.log</string>
            <string>-e</string>
            <string>/var/log/app/app_error.log</string> …
Run Code Online (Sandbox Code Playgroud)

macos launchd node.js osx-mountain-lion forever

9
推荐指数
3
解决办法
8368
查看次数

Android谷歌地图按钮样式

我想在我的谷歌地图上放置一个按钮,这非常简单.但是我希望它看起来像谷歌使用的按钮(缩放按钮,找到我按钮).有没有办法可以"欺骗"并找到他们用于按钮的样式.或者之前还有其他人创造过这种风格吗?

android button google-maps-android-api-2

9
推荐指数
2
解决办法
4562
查看次数

在应用程序中处理权限更改

当我的应用程序仍然在后台运行时,我很难理解处理用户更改权限的正确方法.

在我的应用程序中,我有一个位置类,用于注册位置更改,当位置更改时,状态将发送到服务器.然而,这在后台运行.

当我的应用程序启动时,我检查用户是否可以使用位置服务,如果是,我继续设置该类.但是,用户可以查看我的应用程序并进入设置并删除该权限.在向位置服务部门询问位置以避免崩溃之前,我可以并且肯定会检查我的位置类中是否已启用该权限.但是当一个位置进来时我不参加活动所以我不确定如何提示他们我的应用程序需要位置服务.

编辑:

如果在设置中撤消了权限,那么android似乎会重新启动您的应用.但是我已经确认,截至目前,如果通过设置授予了权限,则android不会重新启动您的应用.

android android-permissions

9
推荐指数
1
解决办法
5589
查看次数

类别偏好后的物料分隔符

我试图用物质主题来塑造我的喜好,而且几乎就在那里.

我导入了以下内容:

compile 'com.android.support:preference-v7:25.1.0'
compile 'com.android.support:preference-v14:25.1.0'
Run Code Online (Sandbox Code Playgroud)

然后在我的主应用主题中设置首选项主题:

<item name="preferenceTheme">@style/PreferenceThemeOverlay.v14.Material</item>
Run Code Online (Sandbox Code Playgroud)

我的偏好屏幕看起来很不错.我唯一的问题是类别没有空间或视觉分离,使得所有偏好看起来非常混乱.

材质设计文档显示的分隔符看起来像顶部和底部阴影(设备类别上方的IE):

几个问题:

  1. android提供这个吗?如果有,那么有更新的appcompat主题吗?或者其他我做错了什么?

  2. 如果android尚未在材质首选项主题中提供此分隔符,那么有人创建了它吗?我看到了这一点,他创建了一个带有自定义布局的新类别,PreferenceFragment中的类别之间的Divider.但我不完全确定如何创造所需的效果.

android android-preferences android-layout android-view material-design

9
推荐指数
1
解决办法
1318
查看次数

有效地为地图标记创建位图

我正在使用android谷歌地图v2,我正在创建地图标记并分配位图.我从资产目录中获取位图.我从资产中获取它们的原因是我用来查找"正确"图标的路径是动态的.

我的问题是我应该保存底层位图,以便我可以一次又一次地重复使用它.我读到:http: //developer.android.com/training/displaying-bitmaps/manage-memory.html

但坦率地说,很多大样本项目都在我头上.

我是否应该每次将其传递给标记以进行创建时重新创建位图,或者我应该将每个位图(最多限制)读入内存并保存以供重用.

每个都将在地图上绘制,所以我不确定无论如何我都可以重用.

示例:我在地图上有300个标记,有20个不同的可能位图.IE大约15%是相同的标记图标.

android bitmap google-maps-android-api-2

8
推荐指数
1
解决办法
2960
查看次数