|
Node.js是什么?Node.js是开源的Javascript,它允许用户从服务器端运行脚本。它在用户的Web浏览器中加载之前动态生成网页。因此,Node.js已经成为一个基础,它允许Web应用程序开发统一单个平台的代码。概观Node.js允许使用javascript来创建Web服务器和网络工具。Node.js应用程序可以在许多服务器上运行,例如Linux,Microsoft Windows和任何其他可以编译为javascript的服务器。Node.js中的函数被设计为非阻塞,这是PHP和Node.js之间的主要区别。为PHP Web开发安装Node.js.查看Microsoft Windows和Ubuntu上Node.js安装的详细指南。Node.js Gurus的启示要成为PHP开发领域的最佳Node.js开发人员,您肯定需要了解Node.js的最佳实践。这篇文章将进一步帮助您将Node.js技能提升到新的水平。Node.js PHP Web开发的最佳实践1.新项目 – 使用npm脚本当你可以用npm脚本和Node安排它们时,停止编写bash脚本。EG,npm运行构建,启动和测试Npm脚本就像Node开发新项目时的一个实际来源。考虑到npm脚本具有前后挂钩,您可以获得非常复杂的自动化级别:"scripts": {"preinstall": "node prepare.js","postintall": "node clean.js","build": "webpack","postbuild": "node index.js","postversion": "npm publish"}2.确保安全 – 使用env Vars通过使用env vars,即使在项目的早期阶段也能确保敏感数据的安全性。此外,一些库和框架将引入像NODE_ENV这样的信息来修改它们的行为。将其设置为生产。同时设置MONGO_URI和API_KEY值。您可以创建一个shell文件(例如start.sh)并将其添加到.gitignoreNODE_ENV=production MONGO_URL=mongo://localhost:27017/accounts API_KEY=lolz nodemon index.jsNodemon also has a config file where you can put your env vars (example):{"env": {"NODE_ENV": "production","MONGO_URL": "mongo://localhost:27017/accounts"}}3.快速而精彩的Node.js – 事件循环功能强大且智能的事件循环使Node.js如此快速和出色。在没有事件循环的情况下等待输入和输出任务完成后浪费的时间。如果您需要执行CPU密集型操作(例如,计算,密码散列或压缩),那么除了为这些CPU任务创建新进程外,您可能还想探索使用setImmediate()延迟任务的时间或setTimeout() – 其回调中的代码将在下一个事件循环周期继续。nextTick()与名称相反的工作循环。4.良好的文档 – 良好的命名约定Gurus一直都说在你的知识中使用最好的名称约定。因为好的名字可以作为一个很好的文档。同样,文件名必须正确反映内部代码的用途。如果您查看Node(GitHub链接)的lib文件夹,其中包含与该平台捆绑在一起的所有核心模块,那么您将看到文件/模块的明确命名(即使您对所有核心模块不是很熟悉) ):events.js fs.js http.js https.js module.js net.js os.js path.js process.js punycode.js querystring.js内部模块标有下划线(_debugger.js,_http_agent.js,_http_client.js),就像代码中的方法和变量一样。这有助于警告开发人员这是一个内部接口,如果您正在使用它,您可以自己做 – 如果它被重构甚至删除,请不要抱怨。5.不要使用Javascript即使使用ES6和ES2016 / ES7添加的两个功能,JavaScript仍然有其怪癖。你只需要几个宏(宏可以让你构建你想要的语言),而不是一个全新的语言,然后考虑Sweet.js就可以做到这一点 – 允许你编写生成代码的代码。6.集群Web应用程序由于节点运行时仅限于单个CPU核心并且大约有1.5 GB,因此在大型服务器上部署非群集节点应用程序会极大地浪费资源。要获得超过1.5 GB的多核心,请在您的应用中加入群集支持。假设您现在正在使用小型硬件上的单个系统,Cluster为您提供了未来的灵活性。测试是检查应用程序的最佳群集进程数量的最佳选择,但最好是在平台的帮助下提供合理的默认值,并提供简单的回退,例如:const CONCURRENCY = process.env.WEB_CONCURRENCY || 1;7.Git主要位大多数应用程序都包含必不可少的记录和生成的记录。当使用像git这样的源代码控制系统时,必须阻止监视生成的内容。例如,您的节点应用程序通常具有一个用于依赖项的node_modules目录,您应该将其保存在git之外。只要每个依赖项都列在包deal.Json中,任何人都可以使用jogging npm install创建应用程序的工作邻域复制 – 以及node_modules。跟踪生成的记录会导致git历史过去不必要的噪音和膨胀。更糟糕的是,鉴于某些依赖项是原生的并且应该被编译,检查它们会使您的应用程序变得不那么可移动,因为您将仅从单个且可能不适合的架构提供构建。出于同样的原因,您不应该在bower_components或grunt构建的编译属性中确定。如果你不小心检查了node_modules,那没关系。你可以这样拿掉它:echo'node_modules'> .Gitignoregit rm -r --cached node_modulesgit commit -am'ignore node_modules'还要忽略npm的日志,以免它们混乱我的代码:echo'npm-debug.Log'> .Gitignoregit commit -am'igno npm-debug'通过忽略这些无用的记录,您的存储库可能会更小,您的提交可能更容易,并且您将阻止生成的目录中的合并冲突。结论:最好的方法是熟悉Node.js并掌握基础知识。现在,通过学习正确的方法来研究代码。是的,如果你有一些很好的知识可以分享这个,请不要犹豫,将你的想法放在下面的评论框中。相关文章推荐OAuth 2.0:保护客户端凭据的节点API 保护服务器客户凭据可能很棘手,OAuth 2.0是将用户身份验证卸载到其他服务的绝佳方法,但如果没有用户进行身 […]...APPIUM – 用于测试的自动化工具 Appium最初由Dan Cueller开发,用于利用Apple iOS的UI自动化框架对本机移动应用程序运行 […]...Kubernetes教程 – 基础知识入门 Google创建了Kubernetes,以帮助开发人员更好地跨集群管理其容器化应用程序。尽管测试版于2014年 […]...TypeScript简介:Web的静态类型 TypeScript是使用JavaScript创建更好体验的众多尝试之一。 TypeScript究竟是什么? […]...Swagger与Apiary有什么区别? Swagger和Apiary是软件开发人员用于构建,使用,设计和记录RESTful基于Web的服务的两种流行的 […]... |
|