
nodejs
文章平均质量分 85
wopelo
这个作者很懒,什么都没留下…
展开
-
axios拦截器/koa中间件/express中间件/redux中间件的原理
1.前言最近在看redux相关的东西,发现redux也有中间件一说。之前接触的express、koa也有中间件的概念,而axios中也有拦截器这种相似的机制,那就正好梳理下这些概念的原理。阅读本篇文章之前,读者应该对axios、koa、express、redux有所了解。2.axios拦截器2.1 注册const axios = require('axios')axios.interceptors.request.use((config) => { console.log('请求拦截原创 2021-03-29 00:22:42 · 922 阅读 · 0 评论 -
axios用post提交的数据格式
vue框架推荐使用axios来发送ajax请求,之前我还写过一篇博客来讲解如何在vue组件中使用axios。但之前做着玩用的都是get请求,现在我自己搭博客时使用了post方法,结果发现后台(node.js)完全拿不到前台传来的参数。后来进过一番探索,终于发现问题所在。post提交数据的四种编码方式1.application/x-www-form-urlencoded 这应该是最常见...原创 2017-12-12 16:41:22 · 173883 阅读 · 6 评论 -
Linux 乌班图系统安装并配置nodejs
本篇博客主要讲一哈如何在乌班图系统下安装并配置nodejs,以及用n模块来管理nodejs版本一.安装nodejs1.在nodejs中文网上下载与系统对应的nodejs版本(我下载的是源代码),我的系统是64位的ubuntu16.04,下载的是node-v6.10.0.tar.gz。 2.将压缩包放在home/wopelo/library/目录下,通过命令行进入该目录,输入tar z...原创 2017-02-28 21:46:16 · 1899 阅读 · 0 评论 -
CommonJs / ES Module的用法和区别
由于JavaScript缺乏模块体系,在ES6之前,社区指定了一些模块加载方案,比如node.js所遵循的commonJS规范。而在ES6在语言层面上实现了模块功能,完全可以取代现有的commonJS等规范,成为浏览器、服务器通用的模块解决方案。本篇博客目录如下: 1.如何使用exports 2.如何使用module.exports 3.exports与module.exports的区别 4原创 2017-12-25 11:12:07 · 7288 阅读 · 0 评论 -
npm突然找不到npm-cli.js的解决方法
在某些情况下,npm会突然“抽筋”不能正常工作,比如我是在项目目录下安装webpack时没有先init,之后无论用npm进行何种操作,都会出现如下错误 其中最重要的一句话是Cannot find module 'D:\nodejs\node_modules\npm\bin\npm-cli.js' 这个时候应该怎么办捏?我百度了很多解决方法,但无一成功。网上最成功的解决方案是重装node(后原创 2017-10-08 19:29:21 · 42405 阅读 · 14 评论 -
express解决413 request entity too large问题
最近在尝试自己实现一个图片上传组件,后台用express(4.16.2)做服务器,然后就尴尬的发现只要上传的数据超过1mb,后台就会报request entity too large并且前台返回413 经过一段时间的百度,发现有多种解决方案,其中,这个帖子包括了我看到的所有解决方法。 首先,讲一下我最后尝试成功的解决方法app.post("/api/save",bodyParser.j...原创 2018-04-03 23:10:27 · 5779 阅读 · 2 评论 -
解决koa2 ctx.render is not a function
最近在学习使用koa2,在尝试用koa2复写之前用express写的一个入口文件的时候发现命令行报错ctx.render is not a function 项目路径如下 app.js是之前用express写的入口文件 koa.js是用koa2复写的入口文件 view是前端页面文件夹,使用的模板引擎是pug 报错时koa.js代码如下//使用koa复写入口文件const K...原创 2018-04-18 11:25:16 · 9813 阅读 · 0 评论 -
几种手动实现HMR的方式
1.前言众所周知,在webpack中使用模块热替换(HMR),能够使得应用在运行时,无需开发者重新npm run dev、刷新页面,便能更新更改的模块,并且将效果及时展示出来,这无疑极大的改善了前端同学们的生活。 当然,目前有许多脚手架——比如vue-cli、create-react-app等,通过这些脚手架,我们可以很轻松的搭建项目,而且这些脚手架自动为我们配置好了热更新功能,从此,我们再...原创 2018-06-09 14:29:35 · 12545 阅读 · 1 评论 -
node.js通过权限验证连接MongoDB
2017年1月,大部分mongodb由于配置的疏忽给了黑客可乘之机,于是便发生了一系列的杯具。所谓的配置疏忽其实就是mongdb所有者没有为mongodb开启权限认证,导致数据库“在任何网络环境,不使用账号直接登录”。这件事情告诉我们——做人不能太懒,虽然有时密码设置了和没设置一样,但该设置的密码还是要设置的。。。。那么我们应该如何为mongodb开启权限认证呢?开启权限认证之后又如何通过node.原创 2017-05-08 21:49:25 · 5875 阅读 · 0 评论 -
在vue组件中使用axios
vue+webpack使用axios原创 2017-11-09 11:18:07 · 29205 阅读 · 0 评论 -
npm run dev退出后依旧占用端口
在使用webpack时(windows环境),如果在git bash here中启动npm run dev,想要停止服务,ctrl+c是不起作用的,这个时候只能通过任务管理器停止进程。如果用windows自带的cmd则可以通过ctrl+c停止服务原创 2017-10-29 17:09:50 · 11103 阅读 · 0 评论 -
nodejs find方法fields属性的一点问题
最近在学用nodejs从MongoDB数据库存取数据时,发现一个很有意思的问题,在此分享给大家。 按照《Node.js权威指南》中的说法——“在nodejs find方法中,可以使用fields属性来显示指定在查询结果中需要包括或排除的字段。该属性值为一个对象,该对象中各属性名为需要在查询结果中包含或排除的字段,各属性值可以为1或者0,当属性为1时,代表需要在查询结果中包括该字段,反之则不包括该字原创 2017-03-10 19:42:50 · 4605 阅读 · 0 评论 -
nodejs连数据库时出现的异步问题
最近,在用nodejs连接mongoDB数据库时出现了一个特别蛋疼的问题,我们先来看代码 下面我来解释一下代码——这个取名叫mongoB.js的文件主要实现监听来着客户端的post请求,这个请求是客户端页面通过window.onload方法再使用原生的XMLHttpRequest对象实现的。首先,js通过http模块监听指定端口,在获取到客户端请求的时候,通过判断参数来选择将要对数据库进行的操作—原创 2017-03-12 20:49:26 · 4200 阅读 · 0 评论 -
nodejs中的directory、static与forever
不知道各位学nodejs的童鞋在 初次接触nodejs时会不会有这样的疑问——你看看人家php、jsp文件都可以用apache、tomcat之类的服务器打开,nodejs怎么没有服务器呢?说具体点,假如我们写了一个项目,把它放到我们的远端服务器上,用户如何访问我们的项目呢?假如我们服务器的ip地址或者域名是xxxx,使用的是apache,端口80。那么用户只需访问xxxx就可以看到我们的页面了。但n原创 2017-03-31 15:31:23 · 3880 阅读 · 0 评论 -
nodejs更新MongoDB数据库中文问题
最近,在用nodejs更新mongodb数据库时遇到了这样一个问题——在update方法中,如果我们以下面这种方式编写代码,则不会出现错误 这里,参数x是一个http.ServerResponse对象,用于向客户端返回信息。y则是客户端通过post方法传到服务器的json文件,里面有若干个字段,其中updata字段用于表明这个post请求要修改数据库内容,字段oldnum的值是需要修改的学生学原创 2017-03-15 15:35:13 · 1578 阅读 · 0 评论 -
“单线程/多线程”与“同步/异步”还有“阻塞/非阻塞”
最近在学习node.js的时候遇到了三对看起来有点让人摸不着头脑的词语——“单线程”、“多线程”、“同步”、“异步”、“阻塞”、“非阻塞”。倘若现在给你一秒钟,让你快速地在脑海里过一遍上面六个词语,估计很少有人会把它们的含义和区别理的特别清楚。下面是根据我收集到的资料加上自己的总结得出的一些结论。 1.同步与异步 同步与异步可以理解为一种“行为方式”。 所谓同步,就是在发出一个调用时,在没有得原创 2017-04-12 12:54:02 · 3174 阅读 · 0 评论 -
Promise浅析(一)——基础篇
之前在慕课网上学习nodejs时接触到了promise这个东东,感觉还不错,于是就想系统的学习一下。但很快就发现网上关于promise的资料有点少,于是就萌生了写有关promise的系列博客的想法。由于这个系列的博客我也是边学边写,难免会出现纰漏,所以有误的地方还请大家多多指正。 基础篇主要介绍什么是promise、promise的基本API。下面就进入正题。一、与Promise相关的概念 1.原创 2017-04-28 19:50:33 · 840 阅读 · 0 评论 -
windows系统下安装openssl
众所周知,openssl 是一个安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及ssl协议,并提供丰富的应用程序供测试或其它目的使用。在学习nodejs创建https服务器时就会遇见介个东东。下面就为大家介绍一下我的openssl安装及配置的方法。 据我所知,openssl有两种安装方法。其一是下载源码编译的方式,这种方法至少需要下载ActivePerl安装包、Microso原创 2017-03-01 23:14:34 · 6359 阅读 · 0 评论 -
通过x-shell向云服务器上传文件
最近在使用x-shell上传文件时出现了一个奇葩的情况,在x-shell界面右键选择“用ZMODEM发送”时提示 这是因为你的云服务器没有安装对应的驱动,此时需要yum install lrzsz等驱动安装完后即可正常上传原创 2017-06-10 20:51:31 · 508 阅读 · 0 评论 -
npm突然就Segmentation fault的解决方法
最近遇到了一个奇葩问题,我在一台使用centos的服务器上配置好了nodejs,前天node -v 、npm -v都有作用,但隔天之后,node -v有效而输入npm -v或者以npm开头的各种命令之后会抛出一个错误:Segmentation fault。就是这两个单词,没有其他数字之类的。然后我百度了各种答案但都解决不了。 在尝试了半个小时之后,我想算了吧,我先把远程连接一开始报的“cannot原创 2017-06-11 21:53:14 · 8542 阅读 · 1 评论 -
node socket.io set/get方法
不知道从socket.io库的第几个版本开始起,在socket端口对象中用于在服务器端保存用户数据的set与get便被抛弃不用了,原来这两个方法的用法是socket.set(name,data,[callback]name参数值为一个字符串,用于指定被保存数据的键名 data参数值可以为一个字符串或者对象,用于指定被保存的数据 callback用于指定保存数据结束时调用的回调函数,不使用任何参数原创 2017-08-07 16:04:18 · 2109 阅读 · 0 评论 -
一篇很好的grunt博客
1、 前言 各位web前端开发人员,如果你现在还不知道grunt或者听说过、但是不会熟练使用grunt,那你就真的真的真的out了(三个“真的”重复,表示重点)。至于grunt的作用,这里不详细说了,总之你如果做web前端开发,你一定要用grunt。还有一点,它完全免费,没有盗版。既强大又免费的东西,为何不用? 当然了,你如果你能找到更好的替代grunt的其他工具也是可以的,例如gulp。Gul转载 2017-07-19 16:53:07 · 395 阅读 · 0 评论 -
node如何使用socket.io向指定客户端发送消息
在node使用socket.io进行websocket通信时,会遇到一个问题 ——服务器如何向指定客户端发送消息,只会群发多么无聊对吧。 我们知道,客户端与服务器建立链接会触发connection事件io.on("connection",function(socket){ //其他骚操作});其中,参数socket为服务器与客户端建立连接的socket端口对象,其有一个名为id...原创 2017-08-13 18:01:26 · 17737 阅读 · 11 评论 -
windows系统下更新nodejs版本
众所周知,nodejs版本更新速度一向快的惊人,其主要原因据说是因为整合了io.js,而后者版本本来就跳的比较快,接着就是水涨船高的问题了,然后就出现了一个比较严重的问题——nodejs版本更新太快,人家想要更新肿么办? 曾经,我也找到并尝试了很多种更新方法,但感觉都不方便直接。终于有一天我发现了gnvm。接下来就给大家分享一下gnvm开发者介绍gnvm的地址:https://www.do原创 2017-02-28 20:39:00 · 9756 阅读 · 2 评论 -
npm管理员身份install时出现权限问题
在用npm安装模块时,虽然我是通过管理员身份执行的,但依然会报有关权限的错 这是因为我手贱升了个级,升到了最新的5.3.0。升级之后应该在install后面加上–no-optional 所以说,同志们,不要盲目最求最新版本原创 2017-10-08 20:14:50 · 16912 阅读 · 3 评论