分类目录归档:nodejs

前端单页(SPA)网站最快SEO介入办法

以前讲过,单页网站实现SEO的各种办法,目前最优解是nuxtjs,但是这种办法不利于现有项目,现有项目想快速实现百度抓取SEO,最快的就是使用中间件在服务器预渲染。

最近在解决一个老项目实现爬虫SEO过程中,使用了nodejs Prerender 中间件,效果还可以,适用于小型项目,杜绝了代码修改,配置一下服务即可

server {
    listen 80;
    server_name your_domain.com;
    root /your/current/directory;

    # 强制所有图片/CSS/JS从当前目录加载
    location ~* \.(jpg|png|css|js)$ {
        root /your/current/directory;
        expires 7d;
        access_log off;
    }

    location / {
        # 识别爬虫UA并转发代理
        if ($http_user_agent ~* (googlebot|bingbot|baiduspider|twitterbot)) {
            proxy_pass http://proxy-service:port;
            break;
        }
        # 正常用户访问本地资源
        try_files $uri $uri/ /index.html;
    }
}

nodejs Prerender 可以自己在服务器安装一个,安装好后把 http://proxy-service:port 地址换成 本地的 http://127.0.0.1:3000 就可以了

如果嫌麻烦,也可以用我的,不保证服务的稳定性,所以大家还是自己在服务器本地搞个。

http://spa.bbdaxia.com

调用方法就是上面的配置,把地址换成我的服务,不保证稳定性 ,可以用来看一下效果

效果示例:
https://www.bbdaxia.com/shenpiDemo/#/ 这是个单页面应用

下面使用我的服务直接访问 http://spa.bbdaxia.com/https://www.bbdaxia.com/shenpiDemo/#/

你看可以正常拿到前端运行后的内容,也就是说爬虫来抓也可以了。

JavaScript接入Solidity区块链

2020年区块链火爆的时候研究过蚂蚁链,现在分享一下,JavaScript怎么接入蚂蚁链Solidity合约,其实很简单的,官方都有示例

1、打开蚂蚁链官网,使用支付宝登录进去

参考文档:https://antchain.antgroup.com/docs/11/107128

按要求申请证书,然后下载 ca.crtclient.keyclient.crt 三个文件

2、按文档要求准备合约链的账户,是否使用隐私链(这个一般情况下用不到),然后获取链节点 IP 和端口号。

3、下载JS示例,修改对应参数,如下:

继续阅读

实时小说转义接口

这几天晚上无聊,做了一个小说转义接口,有需要自行下载,自行修改

仓库:https://gitee.com/netzhouxiang/book-server

1、本接口基于采集数据转义,只做娱乐学习使用,不保证数据稳定性及数据版权问题,不得商用!!!

2、本接口没有存储数据,没有用户,如实现书架/登录/评论等额外功能需自己处理。

继续阅读

ChatGPT+node微信公众号接入

扫码体验:(已无法体验,国内屏蔽严重,镜像地址已被封禁,我也不想花钱整国外服务器)

仓库:https://gitee.com/netzhouxiang/chat-gpt

注意:目前api.openai.com域名已被拦截,如果需要可以走代理,大家娱乐就好,别当正经事情做,我仓库里用的替代地址,而且因网络和机器人反应慢等问题,微信超五秒就会服务故障,所以我还增加了未读功能,如果是服务器可以通过主动推送消息,我这是订阅号只能发一下回一条,有需要的自己改进

效果如下:

继续阅读

nodejs 常用插件

使用会话:
1.安装express-session中间件

npm install express-session

2.安装cookie-parser中间件

npm install cookie-parser

3.注册后台(app.js)

var session = require('express-session');
var cookieParser = require('cookie-parser');
app.use(cookieParser());
app.use(session({
    secret: 'zhouxiangblog',
    resave: true,
    saveUninitialized: false
}));

4.写入session

req.session.userinfo = userinfo;

5.读取session

req.session.userinfo

GZIP压缩:
1.安装compression

npm install compression

2.在APP.JS里 var app = express(); 该位置下面 添加如下代码即可

var compression = require('compression');
app.use(compression());

这样就完成了nodejs开启GZIP压缩的功能

缓存:
1.安装memory-cache

npm install memory-cache

2.调用方法

var cache = require('memory-cache');// now just use the cachecache.put('foo', 'bar');
console.log(cache.get('foo'))// that wasn't too interesting, here's the good part
cache.put('houdini', 'disappear', 100) // Time in msconsole.log('Houdini will now ' + cache.get('houdini'));
setTimeout(function() {  
    console.log('Houdini is ' + cache.get('houdini'));
}, 200);

nodejs 创建项目

1.https://nodejs.org/en/download/ 下载nodejs 安装
2.npm安装express插件。
npm install express
3.安装express命令工具 npm install -g express-generator
3.express 安装nodejs项目。
express -e ejs MyApp
4.进入项目目录,安装nodejs依赖模块.
cd MyApp && npm install
5.安装代码修改自动重启
npm install -g nodemon
6.启动项目 cd MyApp 然后调用 nodemon server.js