标签‘node’

基于Nuxt构建动态路由SSR服务

大约两年前曾经分享过基于Vue的SSR框架Nuxt的简单使用《基于Vue.js的SSR方案之Nuxt.js》,今天因为有SSR需求又重新做了一些尝试。

由于目前在做的是一个能够动态构建页面的平台产品,当前现状是构建产物全为静态资源,路由由前端渲染,且为动态创建。也由于众所周知的原因,国内网站不做SSR基本不可能被搜索引擎收录,于是有了此文,简单记录一下结合Nuxt和Vue做的一些尝试。

查看更多...

node gRPC *.proto 生成 js/ts

最近项目增加node的bff(Backends For Frontends)层,后端用了golang&gRPC。node端使用了nestjs框架,为了ts能够识别proto定义的接口,希望通过proto生成gRPC接口文件,期间绕了不少弯路,简单分享下。

首先组内同学找到这个库
https://github.com/agreatfool/grpc_tools_node_protoc_ts
按照示例,命令如下,发现不好用

查看更多...

npm link、yarn link及yarn workspaces使用

前端项目越来越大,成熟的团队免不了分模块开发再集成,有时候我们也会发布一些npm包用于拆分维护各种模块,这种时候,在正式发布前,我们的包往往不太方便测试,比如要输出bin等操作。

还好,npm以及后起之秀yarn都为我们提供了便捷的方式。

1、npm link/yarn link

在希望同步开发的组件包下执行(假设为component-a)

npm link
// or
yarn link

如果是npm,执行后如果项目没有node依赖,会在根目录创建一个空的node_modules,yarn则不会
查看更多...

使用yarn配置resolutions解决依赖错误

去年3月份,npm圈子发生过这样一件事,一个不过 11 行的工具函数left-pad被作者从npm上撤下,所有直接和间接依赖它的包就这么齐刷刷挂了,包括babel和react-native这样每天安装数万的热门项目。而Azer删除他所有的npm包又是另一个故事:Azer写了一个工具叫kik发布在npm上,这天有个同名的公司律师找上门要求他删掉,Azer不从,这律师就找上npm,npm把包的管理权限转给了这家公司——当然,Azer就怒了,从npm上解放了所有自己发布的包。

事件之后,有人给出了类似问题的解决之道,使用npm的bundledDependencies。不过,很多库作者并不会真的这样用起来,于是,今天又碰到了类似的问题,vue前端界自然是人尽皆知,配套的vue-loader更可谓是必需品,就是在vue-loader里引入的一个库——js-beautify,今天从1.6.14更新到了1.7.0,但是作者似乎写了个bug,于是依赖于node构建的我们,出现了如此异常

Module build failed: Error: Cannot find module './lib/beautify'
//...

官方issue里便出现了如此景象 查看更多...

为你的Express应用增加CSRF防护

CSRF(Cross-site request forgery)跨站请求伪造,也被称为"One Click Attack"或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。尽管听起来像跨站脚本(XSS),但它与XSS非常不同,XSS利用站点内的信任用户,而CSRF则通过伪装来自受信任用户的请求来利用受信任的网站。与XSS攻击相比,CSRF攻击往往不大流行(因此对其进行防范的资源也相当稀少)和难以防范,所以被认为比XSS更具危险性。

众所周知,Web系统并没有绝对的安全,就比如我们公司年前遇到的情况,有些恶心网站通过网络抓包等手段,截取验证码发送接口,通过伪造请求实现了传入任意手机号并发送验证码的功能,虽然这看起来并没有什么用,但当这些不法分子拔了成百上千个接口后,就形成了一个疯狂的短信轰炸机,对于服务提供者,这些地下网站只要有人使用,就会不断得消耗短信费用,给企业带来不必要的损失。 查看更多...

sudo * 提示 command not found 解决

linux下经常遇到使用非root用户安装软件,使用sudo时提示找不到命令。

比如使用nodejs时候,出现

sudo: node: command not found
sudo: npm: command not found

很多文章说export临时修改环境变量或者直接sudo后chown指定命令所在文件夹的所有者,但是我们通常是在非root用户下使用,所以只需在root用户下增加部分软连接即可 查看更多...

Dojo基本DOM操作函数记录

最近接触dojo,发现dojo很强大了,但没有系统学习过dojo,用起来还是很吃力,譬如不知道基础的dom操作等,都得找文档临时学习。总体来说,dojo目前的写法类似于extjs,但又不局限于extjs之类的框架。下面分享一下基础的dom操作函数及说明。

基本的DOM操作只是用到了dojo的核心文件.使用dojo.query将返回一个匹配到的节点数组dojo.Nodelist, 这个数组内建了一些常用的方法. 可以操作DOM

使用dojo的方法:

dojo.ready(function(){
	//TODO
});

TODO部分实现你想要的dojo操作。
查看更多...