javascript - 文件结构的最佳实践 - 使用 Request 模块(Node.js + Express.js)

标签 javascript node.js express

我刚刚在我的express + node.js 项目中安装了Request 模块,我想知道我应该将自定义js 文件放置在哪个文件夹中,该文件将包含以下基本上执行Request 模块的代码。

var request = require('request');
request('http://www.google.com', function (error, response, body) {
  if (!error && response.statusCode == 200) {
    console.log(body) // Show the HTML for the Google homepage. 
  }
})

这只是一个示例代码,我将拥有自己的、可能是比这更好的模式代码,因此我假设将其放在 app.js 内的奇怪位置不被认为是最佳实践。

我也不确定 node_module 文件夹是否适合此执行目的。

最佳答案

正如我的评论中所述,如果不了解应用程序的用途,SO 社区很难决定如何构建应用程序。

但是,您询问 node_modules 是否是执行应用程序代码的好地方...

答案是响亮的“不”。 node_modules 文件夹专门用于应用程序使用的模块,而不是应用程序本身。

典型的 Node 应用程序如下所示:

├── app.js
├── package.json
├── node_modules
   ├── module1
   ├── module2
   ├── etc...

通常,您的应用程序将使用 app.js 编写,并且您的外部模块将通过 Node Package Manager 存储在 node_modules 中。在命令行上执行npm install命令时。 NPM 安装 package.json 文件中列出的软件包。将应用程序代码存储在 node_modules 中是不好的做法,因为该文件夹通常被认为可以通过 NPM 重新构建,并且通常会被各种应用程序/开发人员删除,以使您的应用程序更易于传输。

如果您想将代码分割成更小的 block ,那么您可以需要特定文件而不是已知模块。

这是一个例子:

文件夹结构

├── app.js
├── lib
   ├── my-local-module.js
├── package.json
├── node_modules

lib/my-local-module.js

module.exports = function() {

  console.log('Hello World!');

}

app.js

var myLocalModule = require('./lib/my-local-module.js');

myLocalModule(); // Hello World!

每个程序都需要从某个地方开始。在这种情况下,您可以通过在命令行上运行 node app.js 来引导该应用程序。该代码反过来会通过 require 语句本地化您的 my-local-module.js 文件。

正如我之前所说;我的建议是将您的代码保留在一个文件中,直到您觉得您的代码库已经足够大以保证重构并将逻辑委托(delegate)给其他文件。

关于javascript - 文件结构的最佳实践 - 使用 Request 模块(Node.js + Express.js),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32841862/

相关文章:

node.js - 了解 `nodejs` 异步文件读取

javascript - "Parse Error: Header overflow"Node.js GET 请求期间

javascript - 为什么 Chrome 不运行这个 Javascript?

javascript - 在本地存储来自 HTML 输入文件表单的图像

javascript - 如何在 CakePHP 2.0 中包含 JavaScript 文件

javascript - 根据下拉列表的值启用/禁用复选框

node.js - 任务超时表达AWS lambda

javascript - 拦截所有 Node 的 require 调用

node.js - "Object {} has no method ' 尝试将项目添加到 Mongoose 数组时转换为 ' error"

javascript - NodeJS 等待 mySQL 查询完成