最近需要用 nodejs 做一个爬虫,google 有一个 puppeteer 的项目,可以用它来做爬虫,有关 puppeteer 的介绍网上也有很多,在这里就不做详细介绍了。 node 小白,开始的时候有点懵逼,模块导出也不会。
官方文档上说支持 *.mjs 但是还要改文件扩展名,感觉有点怪怪的,就没用,主要是基于js的模块使用。
因为对 c# 比较熟悉,从我对 c# 的理解中,将 nodejs 中模块导出分成两种形式:
导出一个要实例化的类
module.exports = exports = function (){ };
module.exports = exports = function() { this.synccompanylist = async function(developername){ await synccompanyinfo(developername); }; async function synccompanyinfo(developername){ // ... } }
导出一个静态类
exports.funcname = function (){};
var getdistrictcode = function (districtname) { if (districtname) { for (let i= 0; i< districtinfo.length; i++) { let district = districtinfo[i]; if (district["name"] == districtname || district["aliasname"] == districtname) { return district["code"]; } } } return ""; }; var getnormaldistrictname = function (districtname) { if (districtname) { if (districtname.indexof('区') > 0) { return districtname; } for (let i= 0; i< districtinfo.length; i++) { let district = districtinfo[i]; if (district["name"] == districtname || district["aliasname"] == districtname) { return district["name"]; } } } return ""; } // 设置导出的方法及属性 exports.getdistrictcode = getdistrictcode; exports.getnormaldistrictname = getnormaldistrictname;
在 node 里使用 require
来引用模块
引用 npm 包
const log4js = require("log4js");
引用自己编写的模块
const districtutil = require("./utils/districtutil");
要使用某一模块,需要先引用某一模块,引用模块可以参考上一步
实例类
const company = require("./company"); // ... // 实例化一个 company 对象 var comp = new company(); // 调用 company 里的 synccompanylist comp.synccompanylist ();
静态类
const districtutil = require("./utils/districtutil"); // ... // 调用 districtutil 里的 getdistrictcode let districtnme = districtutil.getdistrictcode('districtname');
希望你能有所收获
如对本文有疑问, 点击进行留言回复!!
JavaScript 好题汇总分享(持续更新,看到好题就写)
XMLHttpRequest 2级 &&进度事件&&JSONP
使用递归原生实现拷贝&&最简单的方法实现深拷贝
网友评论