Node.js 入门:运行在服务端的 JavaScript
2021/5/8 20:28:58
本文主要是介绍Node.js 入门:运行在服务端的 JavaScript,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
简介
Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台。
Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好。
简单的说 Node.js 就是运行在服务端的 JavaScript。
详细学习: 菜鸟教程
一、快速入门
Hello World
新建js文件 helloworld.js
console.log("hello world!");
终端执行文件(需在文件所在目录下执行)
node helloworld.js
实现简易HttpServer
新建js文件server.js
var http = require('http'); http.createServer(function (request, response) { // 发送 HTTP 头部 // HTTP 状态值: 200 : OK // 内容类型: text/plain response.writeHead(200, {'Content-Type': 'text/plain'}); // 发送响应数据 "Hello World" response.end('Hello World\n'); }).listen(8888); // 终端打印如下信息 console.log('Server running at http://127.0.0.1:8888/');
终端执行文件(需在文件所在目录下执行)
node server.js
关闭nodejs服务
在终端按Ctrl+C
二、NPM包管理器
1. 基本信息
简介,这篇Node.js 包管理器 NPM 讲解文章讲解详细,点击就可阅读
NPM官方网站
NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种:
-
允许用户从NPM服务器下载别人编写的第三方包到本地使用。
-
允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用。
-
允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用。
检查安装
由于新版的nodejs已经集成了npm,所以之前npm也一并安装好了。可以通过输入 “npm -v” 来测试是否成功安装,出现版本提示表示安装成功。
$ npm -v 2.3.0
npm 升级
Linux系统环境升级
$ sudo npm install npm -g
Windows系统环境升级
npm install npm -g
2. 基本应用
2.1 安装模块
npm 安装 Node.js 模块语法格式如下:
$ npm install <Module Name>
以下实例,我们使用 npm 命令安装常用的 Node.js web框架模块 express:
$ npm install express
安装好之后,express 包就放在了工程目录下的 node_modules 目录中,因此在代码中只需要通过 require(‘express’) 的方式就好,无需指定第三方包路径。
var express = require('express');
2.2 卸载模块
可以使用以下命令来卸载 Node.js 模块。
$ npm uninstall express
卸载后,可以到 /node_modules/ 目录下查看包是否还存在,或者使用以下命令查看:
$ npm ls
2.3 更新模块
可以使用以下命令更新模块:
$ npm update express
2.4 搜索模块
可以使用以下来搜索模块:
$ npm search express
2.5 生成package文件
使用npm快速生成package.json(类似pom.xml)
npm init //根据提示作一些设定
{ "name": "nodedemo",//工程名 "version": "1.0.0",//版本号 "description": "npm测试",//描述 "main": "HelloWorld.js",//入口js "scripts": { //运行脚本 "test": "echo \"Error: no test specified\" && exit 1", "start": "node server.js" }, "author": "Hyman",//开发者 "license": "ISC"//授权协议 }
三、连接Mysql
安装mysql模块
npm install mysql
简单样例
新建测试文件MysqlTest.js
var mysql = require('mysql'); var connection = mysql.createConnection({ host : 'localhost', user : 'root', password : '123456', port: '3306', database: 'test' }); connection.connect(); var sql = 'SELECT * FROM user'; //查(无参写法) connection.query(sql,function (err, result) { if(err){ console.log('[SELECT ERROR] - ',err.message); return; } console.log('--------------------------SELECT----------------------------'); console.log(result); console.log('------------------------------------------------------------\n\n'); }); var now = new Date(); var Sql = 'INSERT INTO user(Id,name,mail,update_date,create_date) VALUES(0,?,?,?,?)'; var SqlParams = ['李四', 'lisi@mail.com',now, now]; //增(有参写法) connection.query(Sql,SqlParams,function (err, result) { if(err){ console.log('[INSERT ERROR] - ',err.message); return; } console.log('--------------------------INSERT----------------------------'); //console.log('INSERT ID:',result.insertId); console.log('INSERT ID:',result); console.log('-----------------------------------------------------------------'); }); connection.end();
注意事项
1、不要把测试文件命名为mysql.js
2、出现以下错误
[SELECT ERROR] - ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client
错误原因:最新的mysql模块并未完全支持MySQL 8的“caching_sha2_password”加密方式,而“caching_sha2_password”在MySQL 8中是默认的加密方式。
解决方案:更改Mysql加密方式
USE mysql; --root为数据库用户,123456为用户对应密码 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456'; FLUSH PRIVILEGES;
四、编写RESTful API
创建一个 json 数据资源文件 users.json
"user1" : { "name" : "mahesh", "password" : "password1", "profession" : "teacher", "id": 1 }, "user2" : { "name" : "suresh", "password" : "password2", "profession" : "librarian", "id": 2 }, "user3" : { "name" : "ramesh", "password" : "password3", "profession" : "clerk", "id": 3 } }
创建RESTful API 的文件server.js
var express = require('express'); var app = express(); var fs = require("fs"); //获取用户清单 app.get('/listUsers', function (req, res) { fs.readFile( __dirname + "/" + "users.json", 'utf8', function (err, data) { console.log( data ); res.end( data ); }); }) var user = { "user4" : { "name" : "mohit", "password" : "password4", "profession" : "teacher", "id": 4 } } //添加的新用户数据 app.get('/addUser', function (req, res) { // 读取已存在的数据 fs.readFile( __dirname + "/" + "users.json", 'utf8', function (err, data) { data = JSON.parse( data ); data["user4"] = user["user4"]; console.log( data ); res.end( JSON.stringify(data)); }); }) //删除对应用户 app.get('/deleteUser/:id', function (req, res) { fs.readFile( __dirname + "/" + "users.json", 'utf8', function (err, data) { data = JSON.parse( data ); delete data["user" + req.params.id]; console.log( data ); res.end( JSON.stringify(data)); }); }) //根据输入id返回结果,需要放在最后,避免干扰前面的路由 app.get('/:id', function (req, res) { fs.readFile( __dirname + "/" + "users.json", 'utf8', function (err, data) { data = JSON.parse( data ); var userTemp = data["user" + req.params.id] console.log( userTemp ); res.end( JSON.stringify(userTemp)); }); }) var server = app.listen(8081, function () { var host = server.address().addressnode var port = server.address().port console.log("应用实例,访问地址为 http://%s:%s", host, port) })
接下来执行以下命令
$ node server.js 应用实例,访问地址为 http://0.0.0.0:8081
在浏览器中访问 http://127.0.0.1:8081/listUsers
在浏览器中访问 http://127.0.0.1:8081/addUser
注意事项
- 如果多个API写在一起,输入型路由应该放在最后
小编建了前端技术交流学习圈,小伙伴们可以问问题料聊技术聊天气聊心情,小编还会分享前端资料的,点击这期待你的加入!暗号前端。喜欢这篇文章的点赞+评论支持,没看过小编其他文章的可以看看噢。
这篇关于Node.js 入门:运行在服务端的 JavaScript的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-09-28AI给的和自己写的Python代码,都无法改变输入框的内容,替换也不行
- 2024-09-27Sentinel配置限流资料:新手入门教程
- 2024-09-27Sentinel配置限流资料详解
- 2024-09-27Sentinel限流资料:新手入门教程
- 2024-09-26Sentinel限流资料入门详解
- 2024-09-26Springboot框架资料:初学者入门教程
- 2024-09-26Springboot框架资料详解:新手入门教程
- 2024-09-26Springboot企业级开发资料:新手入门指南
- 2024-09-26SpringBoot企业级开发资料新手指南
- 2024-09-26Springboot微服务资料入门教程