zoukankan      html  css  js  c++  java
  • 安装和运行(含虚拟机)

    Nodejs是运行js脚本的环境,浏览器也是一种运行环境,在Nodejs里就没有什么dom了,在这里js=es+bom,es还是那个es,es的笔记可以去js篇看,但是bom就不是那个bom了,这里的bom是由我们安装的

    Nodejs是一个服务器语言,服务器语言- 应该有什么功能呢

    • 接受外部的请求并响应数据
    • 能连接数据库的
    • 能读取文件的

    下载的官网

    image.png

    今天Nodejs已经发布了第12版了,版本的更新可能会带来新的API,并且还会删除废弃的API,所以如果你选择用一个版本,就应该把安装包留着,以后一直用这个版本,如果一直用新的,可能哪天代码就报错了,因为API被改了或者删了,而且以后我们会用很多框架,框架也是根据某个版本封装的,如果你使用一个特别老的版本或者用一个特别新的版本,框架可能都运行不了,因为他会提示找不到这个方法,选择版本一定要选择V10以上,以为V10之后nodejs支持了async+await

    window的安装

    下载安装包或者压缩包都行,安装包就直接安装就行,压缩包就解压到某个盘里,然后右键我的电脑,属性,按下图的指示把nodejs所在目录的地址配置到系统变量的path里(如果是安装包安装的,好像会自动配置好)

    image.png

    然后打开window+R打开系统运行,输入cmd回车打开cmd窗口

    image.png

    # 查看版本
    node --version
    

    我的版本是V10的,如果提示node命令不存在什么的,就得百度为什么了,或者重新装一次

    image.png

    淘宝镜像
    在nodejs的安装文件夹里,可以看到npm.cmd,这是安装node自带的,npm是用来安装插件的,npm是个全网的插件大全,在nodejs和vue的开发会经常使用到npm,但是npm的服务器是在外国的,下载插件的速度是几个字节每秒,所以安装完node的第一件事就是把npm的下载路径修改成国内的,就是传说中的淘宝镜像,阿里自己也搭了个可供下载的服务器,每10分钟去同步外国的仓库,所以直接用淘宝的镜像就行

    淘宝镜像官网,其实就是一句命令而已,打开cmd窗口,因为npm文件正好在node的系统环境变量的配置路径下,npm也变成了全局使用的命令

    npm install -g cnpm --registry=https://registry.npm.taobao.org
    

    安装完毕后,以后要使用npm的命令都把这个npm改成cnpm就行,插件秒安装

    Linux

    首先去nodejs官网把linux64位的安装包下载下来,同样最好也存着,并且保持本地电脑开发版服务器正式运行版一致,才不会出现虚拟机报错本地不报错,本地不报错虚拟机报错的尴尬局面,下载下来后用Xftp工具复制到/usr/local/nodejs路径下,然后打开Xshell工具

    # 进入对应文件夹
    cd /usr/local/nodejs
    
    # 解压
    tar -xzvf node-v12...用tab键补齐.tar.xz
    

    解压完成后,可以通过Xftp工具看到nodejs里多出一个解压出来的文件夹,里面有跟window文件夹一样的文件,然后也需要把node和npm配置成系统变量

    # 方式一:环境变量方式(这种方式似乎只对登录用户有效?)
    vi /ect/profile
    export NODE_HOME=/usr/local/nodejs
    export PATH=$PATH:$NODE_HOME/bin
    # 执行命令使配置文件生效
    source /etc/profile
    
    # 方式二:软链接方式(推荐)
    ln -s /usr/local/nodejs/bin/npm /usr/local/bin/
    ln -s /usr/local/nodejs/bin/node /usr/local/bin/
    
    # 然后查看版本
    node --version
    
    # 然后安装镜像
    npm install -g cnpm --registry=https://registry.npm.taobao.org
    

    开启简易服务器,创建一个test.js

    var http = require("http");
    var server = http.createServer(function(request,response){  
          console.log(request.url)
          response.write("123")
          response.end()
    })
    server.listen(3000)
    

    然后启动服务器

    # 需要去到文件所在的文件夹里
    node test.js
    
    # 不需要去到文件所在的文件夹里,但是需要文件的绝对路径
    node D:/xx/xx/test.js
    

    然后在浏览器打开localhost:3000就可以看到页面显示123,这就说明服务器开启成功了,只要把程序运行到虚拟机上,加上服务器IP地址或者域名,就能被公网的所有人访问了,这就是nodejs的最基础应用,也是最核心的应用

    但是node启动服务是不能关闭cmd窗口的,关了就关掉了服务,window无所谓,可以不关,但是虚拟机只有一个命令行界面,开启服务后可能要去执行点别的命令,最主要的是关闭Xshell工具等于关闭了虚拟机的cmd命令,也就是是说断开Xshell工具,node服务就停了,所以需要持续开启node的插件,这个插件叫pm2

    # -g 是全局安装的意思
    cnpm install pm2 -g
    
    # 开启服务,可以开启很多个的
    pm2 start test.js 
    
    # 查看当前运行列表
    pm2 list
    
    # 停止,0是list里的id编号
    pm2 stop 0
    
    # 重新启动命令
    pm2 restart 0
    
    # 删除运行
    pm2 delete 0
    
    # 显示所有日志
    pm2 logs
    
    # 显示执行编号为0的日志
    pm2 logs 0
    
    # 显示名称为server.js的进程
    pm2 logs server.js
    

    补充一个npm的知识

    npm安装插件的时候有几个命令修饰符--save--save-dev-g,以及不加修饰符

    # 安装模块到项目目录下,不会写入package.json,下一次就找不到他了
    npm install moduleName  
    
    #-g 的意思是将模块安装到全局
    npm install moduleName -g	
    
    #-save 打包需要,在package.json文件的dependencies节点写入依赖,比如vue,vuex
    npm install moduleName -save  
    
    #--save-dev 开发需要,在package.json文件的devDependencies节点写入依赖,必须babel,eslint
    npm install moduleName --save-dev	
    

    装错了位置会导致打包后没有vue,或者带着没用的babel导致打包文件过大等

  • 相关阅读:
    HDU 5087 (线性DP+次大LIS)
    POJ 1064 (二分)
    Codeforces 176B (线性DP+字符串)
    POJ 3352 (边双连通分量)
    Codeforces 55D (数位DP+离散化+数论)
    POJ 2117 (割点+连通分量)
    POJ 1523 (割点+连通分量)
    POJ 3661 (线性DP)
    POJ 2955 (区间DP)
    LightOJ 1422 (区间DP)
  • 原文地址:https://www.cnblogs.com/pengdt/p/12072500.html
Copyright © 2011-2022 走看看