小编del*_*lux的帖子

我在生产中需要nodemon吗?

在本地处理 NodeJS 项目时,需要使用 nodemon 来简化编码。我经常看到仅作为开发依赖项安装的情况,所以我想知道:部署时正确的方法是什么?我们应该仅将其作为开发依赖项包含在内,还是也应该将其包含到服务器中?

在这个项目中,我看到 nodemon 作为常规依赖项安装,然后在 package.json 配置中:

  "scripts": {
    "start": "nodemon src/app.js",
    "test": "echo \"Error: no test specified\" && exit 1"
  }, 
Run Code Online (Sandbox Code Playgroud)

但我想仅将其安装为开发依赖项,然后重新配置配置,例如:

  "scripts": {
    "start-prod": "node src/app.js",
    "start-dev": "nodemon src/app.js",
    "test": "echo \"Error: no test specified\" && exit 1"
  }, 
Run Code Online (Sandbox Code Playgroud)

所以我想知道这是否是正确的方法?我不明白为什么在服务器上我会用 nodemon 观察文件更改,所以我想知道我是否做对了?如果有时需要的话,什么情况下可能会需要呢?

node.js nodemon

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

如何将环境变量从docker-compose传递到NodeJS项目中?

我有一个NodeJS应用程序,我想要docker-size。

该应用程序包括两个部分:

  • 服务器部分,运行从数据库获取数据的API。它在端口3000上运行;

  • 客户端部分,它正在从服务器部分调用API端点。它在端口8080上运行;

这样,我在客户端部分就有一个名为“ server_address”的变量,其值为“ localhost:3000”。但事实是,这两个项目都应在单独的Dockerimage文件中按docker大小放置,并组合在一个docker-compose.yml文件中。

因此由于某些原因,我必须通过docker-compose.yml文件运行docker容器。那么是否有可能以某种方式连接这些东西并将服务器地址从dockerfile外部传递到NodeJS项目中?

docker-composer.yml

version: "3"
services:
  client-side-app:
    image: my-client-side-docker-image
    environment:
      - BACKEND_SERVER="here we need to enter backend server"
    ports:
      - "8080:8080"
  server-side-app:
    image: my-server-side-docker-image
    ports:
      - "3000:3000"
Run Code Online (Sandbox Code Playgroud)

两个Dockerfile看起来都像:

FROM node:8.11.1
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
CMD ["npm", "run", "dev"]
Run Code Online (Sandbox Code Playgroud)

通过拥有这些文件,我很担心:

  • 我将能够BACKEND_SERVER在项目中以某种方式使用变量吗?如果是的话,该怎么做?我不是在指Dockerimage文件,而是在项目本身中?

node.js docker dockerfile docker-compose docker-image

6
推荐指数
1
解决办法
5774
查看次数

如何逐步从 WebForms 迁移到 MVC?

我已经有一个使用 WebForms 创建的现有项目(中等规模)。现在我必须逐步将其迁移到MVC5。我应该从一个部分开始,一个站点一个站点开始,最后达到完全采用 MVC 的程度。

我拥有 MVC 的中级知识和 WebForms 的基础/中级知识。我想这些将是步骤:

1.) to create empty MVC5 solution
2.) integrate WebForms project into new MVC5 solution
3.) make WebForms and MVC5 run side by side (make sure that old system works correctly while it's part of MVC5 solution)
4.) modifying WebForms project, section by section (site by site) and converting them one by one to MVC patterns
Run Code Online (Sandbox Code Playgroud)

理论上我认为我明白了这个想法,但在代码中我真的不确定如何开始集成。到目前为止,我所做的只是第 1 步:) 我查看了此链接: Combine ASP.Net MVC with WebForms,但它确实对我有很大帮助,因为 @jeroenh 的博客文章也许可以帮助我,step3但不能帮助我step2 …

asp.net migration asp.net-mvc webforms asp.net-mvc-5

5
推荐指数
0
解决办法
2万
查看次数

如何在没有验证规则的Yii2中创建场景?

我有MyEntity.php模型.作为模型脚本的一部分,有一些规则和一些场景定义:

public function rules()
{
    return [
        [['myentity_id', 'myentity_title', 'myentity_content', 'myentity_date'], 'required'],
        [['myentity_id'], 'integer'],
        [['myentity_title', 'myentity_content'], 'string', 'max' => 120],
        [['myentity_date'], 'safe'],            
    ];
}

public function scenarios()
{
    $scenarios = parent::scenarios();
    $scenarios['scenario_one'] = ['myentity_id', 'myentity_title'];
    $scenarios['scenario_two'] = ['myentity_id', 'myentity_content'];
    return $scenarios;
}
Run Code Online (Sandbox Code Playgroud)

我需要能够有不同的场景,并且对于不同的操作,只有某些验证(通过参数)才能激活.例如,scenario_one for actionOne,scenario_two for actionTwo等.

以下是控制器中的一小部分代码:

public function actionOne($id)
{           
    $modelMyEntity = $this->findModel($id);
    $modelMyEntity->scenario = 'scenario_one';
    .
    .
    .
}

public function actionTwo($id)
{           
    $modelMyEntity = $this->findModel($id);
    $modelMyEntity->scenario = 'scenario_two';
    .
    .
    .
}
Run Code Online (Sandbox Code Playgroud)

现在我想要一个scenario_three,根本不应该有任何验证.我将在代码中进行额外的检查,以防止在数据库中存储时出现故障.我只需要确保没有应用任何验证,因为它阻止我的表单提交.如果我不应用任何方案,则应用默认方案(所有列出的验证都将处于活动状态,这与我需要的方案完全相反).

validation scenarios validationrules yii2 yii-validation

3
推荐指数
1
解决办法
1734
查看次数

如何将数组的数组合并到一个数组中(在 JavaScript 中)?

我有一个 JavaScript 对象数组。每个对象都包含名为“myPropArray”的属性,它实际上是另一个数组。这是该数组的结构:

let myBaseArray = [
    {
        myPropArray: ["s1", "s2"],
        someOtherProp: "randomString1"
    },
    {
        myPropArray: ["s2", "s3"],
        someOtherProp: "randomString2"
    }
]
Run Code Online (Sandbox Code Playgroud)

我需要的是获取此属性下的所有数组并将它们全部合并到一个数组中,不重复(在 JavaScript 中)。这是我的实现(使用 lodash):

_.map(myBaseArray , 'myPropArray') 
Run Code Online (Sandbox Code Playgroud)

实际上返回以下结果:

[
  ["s1", "s2"],
  ["s2", "s3"]
]
Run Code Online (Sandbox Code Playgroud)

但我想要完成的是:

["s1", "s2", "s3"]
Run Code Online (Sandbox Code Playgroud)

另外(如果可能的话)我试图避免 for-each 循环,因为这需要我尽可能地优化,我想知道是否可以使用 lodash 映射器或其他类似的函数来完成?

从这个阶段我已经得到了一些解决方案(作为此处的解决方案),但我想找到一个针对此问题的解决方案,该解决方案将特定于我的“包含数组类型属性的数组或对象”。

javascript arrays concatenation lodash

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

如何从ArrayBuffer获取数组?

我有一个ArrayBuffer看起来像: 在此处输入图片说明

该缓冲区放置在名为的变量下,myBuffer而我感兴趣的是Uint8Array从此对象获取。

我试图循环为:

myBuffer.forEach(function(element) {
    console.log(element);
});
Run Code Online (Sandbox Code Playgroud)

并通过以下方式直接访问数组:

console.log(myBuffer['[[Uint8Array]]']);
console.log(myBuffer['Uint8Array']);
Run Code Online (Sandbox Code Playgroud)

但是似乎这都不是正确的方法

javascript arrays typed-arrays arraybuffer

3
推荐指数
2
解决办法
3760
查看次数

如何将 bootstrap-vue-select 控件的值设置为在表单加载时预先选择?

我正在使用 VueJS,或者更准确地说Bootsrap-Vue (select form type)。在模板中,我有以下代码:

<b-form-select>                   
  <option v-for="(selectOption, indexOpt) in item.select.options" 
         :selected="selectOption == item.select.selected ? 'selected' : ''"
         :key="indexOpt"
         :value="selectOption"
  >
    {{ selectOption }} - {{ selectOption == item.select.selected }}
  </option>
</b-form-select>
Run Code Online (Sandbox Code Playgroud)

其中对应的数据定义为:

let item = {
  label: "some text goes here",
  inputType: 'text',
  select: {
      selected: '15',
      options: [
         '5',
         '10',
         '15',
         '20'
      ]
  }
}
Run Code Online (Sandbox Code Playgroud)

从 UI 的输出中,我们可以看到条件被正确评估(检查项目“15”的条件返回“true”)。选择控件如下所示:

在此处输入图片说明

如果我检查 HTML,它看起来像:

在此处输入图片说明

但是,我在这里需要的是,为了能够在加载控件期间,将传递的参数传递到“ item.select.selected ”中,以实际显示要预选的选择控件中的哪个选项(在页面加载时)。在我尝试的许多选项中,我的选择控件在页面加载时没有被选中。

有没有办法实现这一目标?

select vue.js vuejs2 vue-select bootstrap-vue

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