为什么要封装一个实用函数的 npm 包? 当你连续写了多个 Node 应用, 都想要 console 漂亮一点, 你可能会像下面这样封装一个函数 import chalk from "chalk";function noop(msg: string): string {return msg }function log(fn: Function): (msg: string) => void {return (msg: string): void => {console.log(fn(msg));}; }export default {success: log(chalk.green),error: log(chalk.red),warn: log(chalk.yellow),info: log(ch...
当我第一次发现 TypeScript 时,就把它用到了自己的 JavaScript 程序中。使用 TypeScript 有很多好处,现在你要让我在用原生 JavaScript 写任何东西的话,需要给我一个令人信服的理由。 在本文中,我将向你展示如何设置一个简单的开发环境,以便使用 TypeScript 编写 Node.js 应用程序。 首先在 TypeScript 中可能有一千种或更多种不同的方法去创建 Node.js 程序。我只是想展示自己喜欢的方式。 另外你可以在此处找到我的入门项目:...
首先下载websocket模块,命令行输入 npm install wsnode.js的 模块ws,可用于创建websocket服务,基本的express 和 http模块的使用var express = require(express); var http = require(http); var WebSocket = require(ws); var app = express(); var server = http.createServer(app); var wss = new WebSocket.Server({server}); 创建好服务之后,websocket 服务通过监听 message事件获取来自客户端的数据,然后我们可以给客户端...
前言随着前端技术的飞速发展,前端开发也从原始的刀耕火种,向着工程化效率化的方向发展。在各种开发框架之外,打包编译等技术也是层出不穷,开发体验也是越来越好。例如HMR,让我们的更新可以即时可见,告别了手动F5的情况。其实现就是监听文件变化自动调用构建过程。下面就关注下如何实现node监听文件变化。场景假定要监听index.js,每当内容更改重新编译。我们就用简单的console来标识执行编译。下面就是实现该功能。 node原生A...
摘要: 本文要实现的内容,使用nodejs 对文件的增删改查,演示的例子-》分离出一个html 文件里面的script 和style 里面的内容,然后单独生成js文件和css 文件。中间处理异步的api-》async/await , Promise项目托管:extract-js-css , 欢迎star 直接上代码: // import fs from fs var fs = require(fs) // import csscomb from csscomb // var csscomb = require(csscomb) // var comb = new csscomb(zen); // console.log(comb)//...
前言 事件驱动的编程变得流行之前,在程序内部进行通信的标准方法非常简单:如果一个组件想要向另外一个发送消息,只是显式地调用了那个组件上的方法。但是在 react 中用的却是事件驱动而不是调用。 事件的好处这种方法能够使组件更加分离。在我们继续写程序时,会识别整个过程中的事件,在正确的时间触发它们,并为每个事件附加一个或多个事件监听器,这使得功能扩展变得更加容易。我们可以为特定事件添加更多的 listener,而不必...
说明 本文参考Node官网文档版本为v11.12.0。 本文主要分析了Nodejs中require导入JSON和js文件时得到的结果,同时简单涉及到了Nodejs中模块导出module.exports和exports的用法。 引言在阅读webpack源码的过程当中,见到如下一行代码: const version = require("../package.json").version故引申出对Nodejs中require的学习。 require介绍在Node.js的文档中,require的相关文档是在Modules目录下,属于Nodejs模块化系统的一部分。 re...
mongodb的下载只要在https://www.mongodb.com/网站就能够下载 或者使用本地下载 https://www.gxlcms.com/softs/590664.html 下载后安装只用一直点next就可以,注意最好使用默认路径安装到C盘,然后在任意位置建立一个文件夹用于储存你的数据库 这里我命名的是mongodbWorkspace 复制他的路径,在命令行工具(windows快捷键win+R)中,输入mongod --dbpath 你的路径,我的如下所示现在你就已经初始化好了你的数据库,不用关掉它,他打...
如果你有 PHP 开发经验,会习惯在修改 PHP 脚本直接刷新浏览器以查看结果,而你 在开发 Node.js 实现的 HTTP 应用时会发现,无论你修改了代码的哪一个部分,都必须终止Node.js然后重新运行。 这是因为 Node.js 只有在第一次引用到某一部分时才会去解析 本文件,以后都会直接访问内存,避免重复载入,而 PHP 则是重新读取并解析脚本(如果没有专门的优化配置)。 在开发Node.js实现HTTP应用时会发现,无论你修改了代码的哪一部分,都必须终止...
1、安装node.js 首先安装node.js安装所需的软件包,并在启动板上添加可用的nodejs的PPA。之后使用以下命令安装nodejs。 $ sudo apt-get install python-software-properties python g++ make$ sudo add-apt-repository ppa:chris-lea/node.js$ sudo apt-get update$ sudo apt-get install nodejs2、安装nginx 现在使用apt get安装nginx web服务器。nginx在默认存储库下可用。 $ sudo apt-get install nginx3、创建测试node服务器 现...
本文实例讲述了Node.js + express实现上传大文件的方法。分享给大家供大家参考,具体如下: 对于大文件的上传我们首先要引入一个叫做 multer 的库: npm install --save multer关于这个库,大家可以查阅官方文档: 点击跳转 https://www.npmjs.com/package/multer 我们先将库引入我们的项目中: var multer = require(multer) var upload = multer({ dest: uploads/ })// 文件会上传到这个目录具体的 get 方法: app.post(/upload,...
简介本文介绍了一个简单的静态资源服务器的实例项目,希望能给Node.js初学者带来帮助。项目涉及到http、fs、url、path、zlib、process、child_process等模块,涵盖大量常用api;还包括了基于http协议的缓存策略选取、gzip压缩优化等;最终我们会发布到npm上,做成一个可以全局安装、使用的小工具。麻雀虽小,五脏俱全,一想是不是还有点小激动?话不多说,放码过来。 文中源码地址在最后附录中。可先行体验项目效果:安装:npm i -...
NodeJS被打上了单线程、非阻塞、事件驱动…..等标签。 在单线程的情况下,是无法开启子线程的。经过了很久的研究,发现并没有thread函数!!!但是有时候,我们确实需要“多线程”处理事务。nodeJS有两个很基础的api:setTimeout和setInterval。这两个函数都能实现“异步”。 nodeJS的异步实现:nodeJS有一个任务队列,在使用setInterval函数的时候,会每隔特定的时间向该任务队列增加任务,从而实现“多任务”处理。但是,“特定的...
首先安装 模块async测试代码: call.js exports.fun1 = function (callback) {setTimeout(function(){console.log(方法1);callback(1);},1900); } exports.fun2 = function (callback) {setTimeout(function(){console.log(方法2);callback(2);},1700); } exports.fun3 = function (callback) {setTimeout(function(){console.log(方法3);callback(3);},1500); }test.js: var async = require(async); var step = require(step); v...
异步给我们带来的性能是明显的,但同时也给我们带了复杂的业务逻辑过程,特别请求依赖多的时候,下面我们来看看如何解决此类这样的问题。使用方法 在这里我们信赖于co这个库。 npm install co --save #or yarn add co模拟 # 登录请求 let loginReq = new Promise((resolve,reject)=>{setTimeout(function () {resolve({success:true})},2000) }); # 获取用户信息 let userInfoReq = new Promise((resolve,reject)=>{setTimeout(fun...