nodejs安装与使用

  1. 目录
  2. 安装
  3. 依赖模块
    1. nodejs安装依赖模块
    2. 使用方式
  4. 搭建服务端
    1. 代码示例

目录

安装

  • 去官网下载二进制包(按需下载版本)
    nodejs
    xz包解压命令: xz -d xxx.tar.xz
  • 解压后的文件夹即node的环境
  • 把文件夹拷贝到指定路径下(任意指定)
  • ~/.bashrc文件中添加环境变量
  • 执行 source ~/.bashrc 使环境变量生效.

环境变量如下

export NODE_HOME=node文件夹地址
export PATH=${PATH}:${NODE_HOME}/bin
export NODE_PATH=${NODE_HOME}/lib/node_modules

依赖模块

nodejs安装依赖模块

配置package.json文件下载依赖模块.

{
    "name": "cdf_project",
    "version": "1.0.0",
    "license": "MIT",
    "author": "dingfang",
    "contributors": [
    {
        "name": "dingfang",
        "email": "xx@xx.com",
        "url": "https://changdingfang.com"
    }
    ],
    "description": "cdf xx",
    "keywords": ["cdf", "dingfang", "nodejs"],
    "main": "./nodeserver.js",
    "scripts": {
        "start": "node nodeserver.js",
        "dev": "nodemon",
        "print": "echo hello world"
    },
    "repository": {
        "type": "git",
        "url": "https://github.com/xxx.git"
    },
    "engine": {
    "node": "8.15.0"
    },
    "dependencies": {
        "errorhandler": "^1.5.1",
        "express": "^4.17.1",
        "log4js": "^1.1.1",
        "morgan": "^1.9.1",
        "mysql": "^2.17.1",
        "node-getopt": "^0.3.2",
        "xmlhttprequest": "^1.8.0"
    },
    "devDependencies": {
        "nodemon": "^1.18.11"
    }
}

说明

字段 说明
name 包的名称,发布到npm注册表时,软件包将在其中显示的名称,不超过214字符,且都是小写,必须url安全
version 描述软件的当前版本
license 许可证
author people字段, 供一人使用
contributors people字段, 供多人使用
description npm注册表将钙芝端用于发布的软件包,在搜索结果中和npmjs。com官网上描述该软件包
keywords npm注册表会为该字段建立索引,能够在搜索软件包时帮助找到它们
main 定义项目的入口点,通常是用于启动项目的文件
scripts scripts属性接收一个对象,它的值为可以通过 npm run 运行的脚本,如 npm run print
repository 记录项目桫在的资源库(url字段本意是指向可从中访问版本控制的位置,而不仅仅是指向已发布的代码库)
dependencies 列出项目使用的所有依赖项
devDependencies 列出仅开发期间需要的依赖项,可以明确指出生产中不需要哪些依赖项

使用方式

npm install

该命令会自动解析package.json文件, 下载文件内设置好的模块以及模块依赖的模块.

下载完成后可以看到node_modules第三方模块文件夹 和 package-lock.json 第三方模块下载版本信息json文件.

搭建服务端

代码示例

/* global require, __dirname, console */

/* eslint-disable import/no-extraneous-dependencies, no-console */

const express = require('express');
const bodyParser = require('body-parser');
const errorhandler = require('errorhandler');
const morgan = require('morgan');
// eslint-disable-next-line import/no-unresolved
// const https = require('https');
const http = require('http');

/*
const fs = require('fs');

// https需要证书配置
const options = {
    key: fs.readFileSync('./cert/key.pem').toString(),
    cert: fs.readFileSync('./cert/cert.pem').toString(),
};
*/

const app = express();

// app.configure ya no existe
app.use(errorhandler({
dumpExceptions: true,
showStack: true,
}));
app.use(morgan('dev'));

// http访问的静态文件路径设置
app.use(express.static(`${__dirname}/webclient`));
console.log(`dirname: ${__dirname}`);

// 加载使用json, urlencoded解析中间件
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
extended: true,
}));

app.use((req, res, next) => {
    res.header('Access-Control-Allow-Origin', '*');
    res.header('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, DELETE');
    res.header('Access-Control-Allow-Headers', 'origin, content-type');
    if (req.method === 'OPTIONS') {
        res.send(200);
    } else {
        next();
    }
});


// app.set('views', __dirname + '/../views/');
// disable layout
// app.set("view options", {layout: false});


app.get('/gettest', function(req, res){
    console.log('get: ', req.query);
    res.send('hello world get');
});


app.post('/posttest', function(req, res) {
    console.log('post: ', req.body);
    res.send('hello world post');
});


app.delete('/posttest', function(req, res) {
    console.log('delete: ', req.params);
    res.send('hello world delete');
});


app.put('/puttest', function(req, res) {
    console.log('put: ', req.params);
    res.send('hello world put');
});


app.patch('/patchtest', function(req, res) {
    console.log('patch: ', req.params);
    res.send('hello world patch');
});

// 开启服务, 监听端口
app.listen(9010);
// const server = https.createServer(options, app);
// server.listen(8082);
const server = http.createServer(app);
console.log('node server');


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 245292011@qq.com

文章标题:nodejs安装与使用

字数:1.1k

本文作者:常丁方

发布时间:2020-07-12, 10:34:40

最后更新:2021-08-25, 18:31:45

原始链接:http://changdingfang.com/2020/07/12/notes/nodejs/nodejs/
×

喜欢就点赞,疼爱就打赏

资源