一、node简介 多线程会使性能变高,但是会带来并发报错问题; nodejs把我们写得源代码通过引擎的方式变成操作系统可以识别运行的内容;然后nodejs通过借用操作系统端口号的方式,把我们的操作系统变成了一个服务端,我们可以通过b/s的browers去访问这个服务端。 以前js只可以在浏览器中运行,那么js最大限度的只能使用浏览器比如弹出一个窗口等;但是nodejs使得js可以子啊操作系统中运行,那么js就可以像java、c一样可以和系...
思路:通过笔记(二)中代理的设置,已经可以对YouTube的信息进行爬取了,这几天想着爬取网站下的视频信息。通过分析YouTube,可以从订阅号入手,先选择几个订阅号,然后爬取订阅号里面的视频分类,之后进入到每个分类下的视频列表,最后在具体到每一个视频,获取需要的信息。以订阅号YouTube 电影为例。 一、爬取YouTube 电影里面的视频分类列表打开订阅号,我们可以发现订阅号下有许多视频分类如下图所示,接下来可以解析该订阅号...
部署
1)从官网或其他映像下载合适的版本。譬如: wget https://npm.taobao.org/mirrors/node/v10.13.0/node-v10.13.0-linux-x64.tar.xz2)解压到合适的目录(譬如root目录),建立软连接。tar xf node-v10.13.0-linux-x64.tar.xz
ln -s /root/node-v10.13.0-linux-x64/bin/node /usr/local/bin/node
ln -s /root/node-v10.13.0-linux-x64/bin/npm /usr/local/bin/npm验证:node -v
npm -v3)安装应用包npm install xxxxx运行nod...
npm报错在 windows终端输入 vue init webpack app, 创建一个名为 app 的 Vue 项目时报错如下:无法加载文件 D:\nodejs\node_global\webpack.ps1,因为在此系统上禁止运行脚本有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID=135170解决报错:(1)以管理员身份运行vs code(2)在终端执行:get-ExecutionPolicy,显示Restricted(表示状态是禁止的)(3)在终端执行:set-ExecutionPolicy RemoteSigned(4)在终端执...
1、通过官方查询需要安装的版本https://github.com/nodesource/distributions 2、在CentOS下获取相应版本的nodejs资源(以NodeJS 14.x为例)
粘贴 curl -sL https://rpm.nodesource.com/setup_14.x | sudo bash - 3、运行 sudo yum install -y nodejs 进行nodejs安装 You may also need development tools to build native addons: sudo yum install gcc-c++ make## To install the Yarn package manager, run: curl -sL ...
这段时间一直有在看Express框架的API,最近刚看到Router,以下是我认为需要注意的地方:Router模块中有一个param方法,刚开始看得有点模糊,官网大概是这么描述的:1Map logic to route parameters.大概意思就是路由参数的映射逻辑这个可能一时半会也不明白其作用,尤其是不知道get和param的执行顺序再看看源码里面的介绍:123Map the given param placeholder `name`(s) to the given callback.Parameter mapping is used to prov...
不知不觉做node开发已经半年时间了,这期间写尝试着去解决了一些问题,实现了一下想法,也遇到过一些坑。是时候来梳理一下代码,规划一下接下来的工作。现阶段我们的node服务器端代码结构是这样的: 乍一看好像没有什么问题,其实这其中充斥着一些重复代码,以及一些没有测试的模块,代码组织也不够合理。这些问题都是需要处理的。先来说说几个常用的术语router
路由模块负责请求的分发,把请求转给具体的controller。control...
下载Nodejs 创建一个新的目录去存放下载的Nodejs文件,在这里我们创建了一个‘nodes_download‘目录。注* 通过 http://nodejs.org/dist 查看最新版。并不是所有最新版的NodeJS都能在树莓派上使用,因为有些没有正确地指定ARM的指令集。树莓派二代已经可以完全正常使用了,本人亲测,把过程分享如下。注意:树莓派一代使用0.12版本的nodejs,因为是ARM v6指令集的CPU,但Chriumun V8最版JavaScript引擎,可能使用了一些ARM v7的功能...
数据库连接要在node.js中使用MongoDb,首先需要执行命令 npm install mongodb --save 进行安装,然后在页面中进行引入:const MongoClient = require(‘mongodb‘).MongoClient;
const url = ‘mongodb://127.0.0.1:27017‘;
const dbName = ‘mongo‘;
const client = new MongoClient(url,{useUnifiedTopology:true});
client.connect(function(error){if(error){console.log(error);return;}else{console.log(‘连接成功‘);}
}...
1.模块使用(1)superagent:Nodejs中的http请求库(每个语言都有无数个,java的okhttp,ios的afnetworking)(2)cheerio:Nodejs中的html解析库(每个语言基本都有。。)(3)async:Nodejs中的同/异步并发函数执行库(这个非常牛,其他语言同类型的不多) 2.爬取内容多玩的英雄联盟英雄页面,通过解析页面内每个英雄的URL,然后并发请求英雄的详细数据,提取需要的数据得到结果http://lol.duowan.com/hero/这次主要是为了熟悉Nod...
nodejs也可以用来写bash。一、写bash --> hello.js#! /usr/local/bin/node
console.log(‘Hello‘);注意:这里hashbang是我在mac命令行下写的,要写node所在的位置。兔哥的那个行不通,兔哥是这样写的#! /usr/bin/env node二、给权限$ sudochmod +x hello.js$ ./hello.jsHello这样就能执行了。三、链接,因为这样还不能在任意目录调用,所以要链接一下$ chmodln -s /sourcePath/hello.js /target/hello
# 这里都要写绝对路径,不然...
C++编写nodejs扩展实战
之前有用PHP写过根据IP地址查询IP归属地,后来改用C语言编写,效率果然大幅度提高,然后转化为PHP的扩展.
想起之前有过使用手机号码查询号码归属地,最近又有在研究nodejs,于是就使用C++编写了nodejs的扩展.
遇到的问题确实不少,记录下来,供大家参考:
1.字符编码的问题:nodejs对于gbk编码支持不够好,为了提高程序效率,先把IP归属地的资源转化为utf-8的编码,具体使用PHP脚本foreach使用iconv转换
2.参数传递的问题...
文本文件的换行符方法一:
var EOL = fileContents.indexOf("\r\n") >= 0 ? "\r\n" : "\n";方法二:
var EOL = (process.platform === ‘win32‘ ? ‘\r\n‘ : ‘\n‘)删除文件var fs = require("fs");console.log("Going to delete an existing file");
fs.unlink(‘input.txt‘, function(err) {if (err) {return console.error(err);}console.log("File deleted successfully!");
});
小文件的异步与同步读写var fs = require("...
1.ReferenceError: userModule is not defined A:1》检查app.js文件中是否调用userModule所在的文件(const userModule=require("./routes/useModule2.js"); 2》检查userModule所在的模块文件是否将模块公开出来(module.exports=userModule)。原文:http://www.cnblogs.com/potato-lee/p/6259536.html
BigPipe 是 Facebook 开发的优化网页加载速度的技术。网上几乎没有用 node.js 实现的文章,实际上,不止于 node.js,BigPipe 用其他语言的实现在网上都很少见。以至于这技术出现很久以后,我还以为就是整个网页的框架先发送完毕后,用另一个或几个 ajax 请求再请求页面内的模块。直到不久前,我才了解到原来 BigPipe 的核心概念就是只用一个 HTTP 请求,只是页面元素不按顺序发送而已。了解了这个核心概念就好办了,得益于 node.js...