node.js npm javascript

Javascript 

ES Module
package.json中添加type: "module"
或命名文件为.mjs

commonJS

数组方法

const arr = [1, 2, 3];
arr.push(4);                                  # 增
arr.unshift(0);                               # 增

const val = arr.pop();                        # 删
const val = arr.shift();                      # 删

arr.length                                    # 查

const narr = arr.map((val, idx, arr) => {

});

const narr = arr.filter((val, idx, arr) => {

});

arr.forEach((val, idx, arr) => {

});

CLI

# 初始化next.js项目
npx create-next-app@latest 

# 更换为淘宝镜像源    设置网络代理
npm config set registry https://registry.npmmirror.com
npm config set proxy 127.0.0.1:7890
npm config set https-proxy 127.0.0.1:7890
npm config delete proxy
npm config get proxy
npm config list --json

# 脚本        在package.json中定义脚本    
npm run            # 查看可用脚本
npm run dev
npm run build

# 安装在package.json中定义的依赖
npm install
# 运行install后会生成node_modules文件夹和package-lock.json

npm install -g vite          # 全局安装   
C:\Users\\AppData\Roaming\npm\node_modules
/home/latin/.nvm/versions/node/v22.14.0/lib/node_modules

npm install tailwindcss      # 为用户或项目安装, 会在package.json中加入依赖 
C:\Users\\node_modules        ~/node_modules

npm uninstall tailwindcss
npm init                            # 创建项目 生成package.json文件

npx 用来运行包中的可执行程序

第三方库

npm trends: Compare NPM package downloads

@heroicons/react        # 图标库    https://heroicons.com/

antd

组件总览 - Ant Design

antd 为 Web 应用提供了丰富的基础 UI 组件

clsx

css选择库

className={clsx(
"p-6 mx-8 mb-8 bg-gray-100",
{
"border-2": !fileEnter,
"border-4": fileEnter,
},
)}

lodash

Lodash 简介 | Lodash中文文档 | Lodash中文网

实用工具集    import _ from 'lodash';

let newrInfo = _.cloneDeep(rInfo);    # 深拷贝

_.set(obj, 'a[0].b.c', 4);         # 修改对象的值
_.get(obj, 'a.b.c', 'default');    # 获得对象的值
_.omit(obj, ['a', 'c']);           # 忽略对象中的这些属性, 不修改对象
_.size(obj)
_.isEmpty(obj)
_.includes(collection, value);
_.keys(obj)

_.forEach(obj, (val, key) => {});    # 修改原集合, 不会返回
_.map(colle, ele => {});            # 不会修改原集合, 返回新集合
_.assign(tgt, src1, src2);         # 将tgt中的属性修改

_.zipObject(arr1, arr2)            # arr1作为key, arr2作为value
_.concat(array, 2, [3], [[4]]);    # 返回[1, 2, 3, [4]], 不修改

koa

node.js的web框架

const Koa = require("koa");
const app = new Koa();


app.listen(5000, () => prints.printBanner("游戏主服务启动,监听5000"));
app.use(bodyParser());                                        # 使用解析中间件
app.use(router.routes()).use(router.allowedMethods("*"));     # 使用路由中间件

app.use(async (ctx, next) => {
let {method, url, header} = ctx.request;
ctx.set("Access-Control-Allow-Origin", "*");
ctx.set('Access-Control-Allow-Methods', 'POST,GET,OPTIONS,PUT,DELETE');
ctx.set('Access-Control-Allow-Headers', 'Content-type');
ctx.set('Content-Type', 'application/json;charset=UTF-8');
await next();                                                 # 继续使用中间件
});

koa-router

koa-router是路由插件, 用于处理 HTTP 请求的路径和方法

const router = require('koa-router')();

const user = require('./user');
router.use('/user', user.routes(), user.allowedMethods());

const user = new Router();
user.post('/login', async ctx => {
    let response;

    ctx.body = response;
});

Sequelize

Migrations | Sequelize

用法示例:GitHub - liumengniu/majiang-server: 基于laya3.x引擎 + nodejs 开发的湖南麻将

# 生成config, model, migrations, seeders
npx sequelize-cli init        

# 创建Model, 在model文件夹下直接生成user.js
npx sequelize-cli model:generate --name User --attributes firstName:string,lastName:string,email:string

# 生成空迁移文件
npx sequelize-cli migration:generate --name create-user(迁移文件名字)

# 提交到数据库
npx sequelize-cli db:migrate
const models = require("@/models");
const User = models.User;

# 删
async deleteUser(id) {
	await User.destroy({where: {id}});
}

# 改
await User.update({bestRecord: record, coin: user.coin + gold}, {where: {id: userId}});

# 查
let user = await User.findOne({where: {id: userId}});
let users = await User.findAll({where: {id: ids}});

# 增
let userInfo = await User.create(newUser);

got axios

HTTP请求库

const {data} = await got.post('https://httpbin.org/anything', {
	json: {
		hello: 'world'
	}
}).json();

bluebird

Bluebird 是一个性能更高、功能更丰富的 Promise

global.Promise = require('bluebird');

redux zustand

状态管理库

nvm

nvm是node.js多版本控制工具

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh | bash
# 安装nvm

nvm install 20        # 安装node.js版本20
nvm use 16            # 使用版本16的node.js    仅本次终端有效

你可能感兴趣的:(react.js)