Node.js示例
Node.js示例:我们将使用Node.js来介绍基础知识,fs模块,mysql模块,http模块,url模块,解析json等示例。
以下是我们将在此Node.js教程中介绍的Node.js示例的列表:
| Module/Topic | Examples | 
| Basics | 
  | 
| File System | 
  | 
| MySQL | 
  | 
| URL | 
  | 
| JSON | 
  | 
| HTTP | 
  | 
Node.js示例:简单的Node.js示例
以下是一个简单的Node.js示例,用于将消息打印到控制台。
console.log("Hi there! This is Node.js!")Calculator.js
// 返回两个数字的加法
exports.add = function (a, b) { 
    return a+b; 
 };  
 
// 返回两个数字的差
exports.subtract = function (a, b) { 
    return a-b; 
 };  
 
// 返回两个数的乘积
exports.multiply = function (a, b) { 
    return a*b; 
 };var calculator = require('./calculator'); 
 
var a=10, b=5; 
 
console.log("Addition : "+calculator.add(a,b)); 
console.log("Subtraction : "+calculator.subtract(a,b)); 
console.log("Multiplication : "+calculator.multiply(a,b));readFileExample.js
// 引入文件fs模块
var fs = require('fs'); 
var data ='Learn Node FS module'; 
 
// 具有文件名,内容和回调函数的writeFile函数
fs.writeFile('newfile.txt', data, function (err) { 
  if (err) throw err; 
  console.log('File is created successfully.'); 
 });在终端或命令提示符下使用node命令运行程序:
终端输出
$ node createFileExample.js File is created successfully.
该文件应在带有内容“学习节点FS模块”的示例node.js程序旁边创建。
Node.js示例:读取文件
// 引入文件系统模块
var fs = require('fs'); 
 
// 读取文件sample.html
fs.readFile('sample.html', 
    // 读取文件完成时调用的回调函数
    function(err, data) {  
        if (err) throw err; 
        // 数据是包含文件内容的缓冲区
        console.log(data.toString('utf8')) 
 });在终端或命令提示符下使用node命令运行程序:
终端输出
$ node readFileExample.js <html> <body> <h1>Header</h1> <p>I have learnt to read a file in Node.js.</p> </body> </html>
Node.js示例:删除文件
确保在node.js示例程序旁边有一个名为“ sample.txt”的文件。
// 引入fs模块
var fs = require('fs'); 
 
// 删除名为“ sample.txt”的文件
fs.unlink('sample.txt', function (err) { 
    if (err) throw err; 
    // 如果没有错误,则文件已成功删除
    console.log('File deleted!'); 
 });在终端或命令提示符下使用node命令运行程序:
终端输出
$ node deleteFile.js File deleted!
文件已成功删除。
Node.js示例:写入文件
在此示例中,我们将编写内容“ Hello!” ,到文本文件sample.txt。
// 引入文件系统模块
 
var fs = require('fs'); 
 
var data = "Hello !"
 
// 将数据写入文件sample.html
fs.writeFile('sample.txt',data, 
    // 写入文件后调用的回调函数
    function(err) {  
        if (err) throw err; 
        // 如果没有错误
        console.log("Data is written to file successfully.") 
 });当以上程序在Terminal中运行时,
节目输出
arjun@arjun-VPCEH26EN:~/workspace/nodejs$ node nodejs-write-to-file-example.js Data is written to file successfully.
NodeJS示例–连接到MySQL数据库
// 引入mysql模块
var mysql = require('mysql'); 
 
// 创建具有所需详细信息的连接变量
var con = mysql.createConnection({ 
  host: "localhost", // 运行mysql的服务器的IP地址
  user: "arjun", // mysql数据库的用户名
  password: "password" // 对应的密码
 }); 
 
// 连接到数据库。
con.connect(function(err) { 
  if (err) throw err; 
  console.log("Connected!"); 
 });selectFromTable.js MySQL SELECT FROM查询的简单示例
// Node.js MySQL SELECT FROM查询示例
// 引入mysql模块
var mysql = require('mysql'); 
 
// 创建具有所需详细信息的连接变量
var con = mysql.createConnection({ 
  host: "localhost", // 运行mysql的服务器的IP地址
  user: "arjun", // mysql数据库的用户名
  password: "password", // 对应的密码
  database: "studentsDB" // 使用指定的数据库
 }); 
 
// 建立与数据库的连接。
con.connect(function(err) { 
  if (err) throw err; 
  // 如果连接成功
  con.query("SELECT * FROM students", function (err, result, fields) { 
    // 如果在执行上述查询时出现任何错误,则抛出错误
    if (err) throw err; 
    // 如果没有错误,您将得到结果
    console.log(result); 
  }); 
 });selectFromWhere.js
// 引入mysql模块
var mysql = require('mysql'); 
 
// 创建具有所需详细信息的连接变量
var con = mysql.createConnection({ 
  host: "localhost", // 运行mysql的服务器的IP地址
  user: "arjun", // mysql数据库的用户名
  password: "password", // 对应的密码
  database: "studentsDB" // 使用指定的数据库
 }); 
 
// 建立与数据库的连接。
con.connect(function(err) { 
  if (err) throw err; 
  // 如果连接成功
  con.query("SELECT * FROM students where marks>90", function (err, result, fields) { 
    // 如果在执行上述查询时出现任何错误,则抛出错误
    if (err) throw err; 
    // 如果没有错误,您将得到结果
    console.log(result); 
  }); 
 });从上面的.js文件的位置打开一个终端,然后运行selectFromWhere.js Node.js MySQL示例程序。
AscOrderExample.js
//引入mysql模块
var mysql = require('mysql'); 
 
// 创建具有所需详细信息的连接变量
var con = mysql.createConnection({ 
  host: "localhost", // 运行mysql的服务器的IP地址
  user: "arjun", // mysql数据库的用户名
  password: "password", // 对应的密码
  database: "studentsDB" // 使用指定的数据库
 }); 
 
// 建立与数据库的连接。
con.connect(function(err) { 
  if (err) throw err; 
  // 如果连接成功
  con.query("SELECT * FROM students ORDER BY marks", function (err, result, fields) { 
    // 如果在执行上述查询时出现任何错误,则抛出错误
    if (err) throw err; 
    // 如果没有错误,您将得到结果
    console.log(result); 
  }); 
 });运行上面的Node.js MySQL ORDER BY示例程序。
// 引入mysql模块
var mysql = require('mysql'); 
 
// 创建具有所需详细信息的连接变量
var con = mysql.createConnection({ 
  host: "localhost", // 运行mysql的服务器的IP地址
  user: "arjun", // mysql数据库的用户名
  password: "password", // 对应的密码
  database: "studentsDB" // 使用指定的数据库
 }); 
 
// 建立与数据库的连接。
con.connect(function(err) { 
  if (err) throw err; 
  // 如果连接成功
  con.query("INSERT INTO students (name,rollno,marks) values ('Anisha',12,95)", function (err, result, fields) { 
    // 如果在执行上述查询时出现任何错误,则抛出错误
    if (err) throw err; 
    // 如果没有错误,您将得到结果
    console.log(result); 
  }); 
 });在终端中的Node.js MySQL程序上方运行。
UpdateRecordsFiltered.js-更新MySQL表的记录
// 引入mysql模块
var mysql = require('mysql'); 
 
// 创建具有所需详细信息的连接变量
var con = mysql.createConnection({ 
  host: "localhost", // 运行mysql的服务器的IP地址
  user: "arjun", // mysql数据库的用户名
  password: "password", // 对应的密码
  database: "studentsDB" // 使用指定的数据库
 }); 
 
// 建立与数据库的连接。
con.connect(function(err) { 
  if (err) throw err; 
  // 如果连接成功
  con.query("UPDATE students SET marks=84 WHERE marks=74", function (err, result, fields) { 
    // 如果在执行上述查询时出现任何错误,则抛出错误
    if (err) throw err; 
    // 如果没有错误,您将得到结果
    console.log(result); 
  }); 
 });在终端中运行以上程序
终端输出
arjun@arjun-VPCEH26EN:~/workspace/nodejs$ node UpdateRecordsFiltered.js 
OkPacket { 
  fieldCount: 0, 
  affectedRows: 3, 
  insertId: 0, 
  serverStatus: 34, 
  warningCount: 0, 
  message: '(Rows matched: 3  Changed: 3  Warnings: 0', 
  protocol41: true, 
  changedRows: 3 }Node.js示例–删除表条目
在表上的记录的一个或多个属性上应用过滤器的情况下,对指定的表执行DELETE FROM查询。
 // 引入mysql模块 
 var mysql = require('mysql'); 
 
 // 创建具有所需详细信息的连接变量 
 var con = mysql.createConnection({ 
  host: "localhost", // 运行mysql的服务器的IP地址 
  user: "arjun", // mysql数据库的用户名
  password: "password", // 对应的密码
  database: "studentsDB" // 使用指定的数据库
 }); 
 
 // 连接到数据库。 
 con.connect(function(err) { 
  if (err) throw err; 
  // 如果连接成功 
  con.query("DELETE FROM students WHERE rollno>10", function (err, result, fields) { 
    // 如果在执行上述查询时出现任何错误,则抛出错误 
    if (err) throw err; 
    // 如果没有错误,您将得到结果 
    console.log(result); 
  }); 
 });运行deleteRecordsFiltered.js-终端输出
arjun@arjun-VPCEH26EN:~/workspace/nodejs$ node deleteRecordsFiltered.js 
OkPacket { 
  fieldCount: 0, 
  affectedRows: 6, 
  insertId: 0, 
  serverStatus: 34, 
  warningCount: 0, 
  message: '', 
  protocol41: true, 
  changedRows: 0 }Node.js示例–使用结果对象
我们可以使用DOT(。)运算符将结果集中的记录作为数组和记录的属性来访问。
// Node.js MySQL结果对象示例
// 引入mysql模块
var mysql = require('mysql'); 
 
// 创建具有所需详细信息的连接变量
var con = mysql.createConnection({ 
  host: "localhost", // 运行mysql的服务器的IP地址
  user: "arjun", // mysql数据库的用户名
  password: "password", // 对应的密码
  database: "studentsDB" // 使用指定的数据库
 }); 
 
// 建立与数据库的连接。
con.connect(function(err) { 
  if (err) throw err; 
  // 如果连接成功
  con.query("SELECT * FROM students", function (err, result, fields) { 
    // 如果在执行上述查询时出现任何错误,则抛出错误
    if (err) throw err; 
    // 如果没有错误,您将得到结果
    // 对结果中的所有行进行迭代
    Object.keys(result).forEach(function(key) { 
      var row = result[key]; 
      console.log(row.name) 
    }); 
  }); 
 });使用终端中的节点运行以上程序
终端输出
arjun@arjun-VPCEH26EN:~/workspace/nodejs$ node selectUseResultObject.js John Arjun Prasanth Adarsh Raja Sai Ross Monica Lee Bruce Sukumar
Node.js示例–解析URL参数
// 引入url模块
var url = require('url'); 
var address = 'http://localhost:8080/index.php?type=page&action=update&id=5221'; 
var q = url.parse(address, true); 
 
console.log(q.host); //返回'localhost:8080'
console.log(q.pathname); //返回'/index.php'
console.log(q.search); //returns '?type=page&action=update&id=5221'
 
var qdata = q.query; // 返回一个对象:{类型:页面,操作:'update',id ='5221'}
console.log(qdata.type); //返回“页面”
console.log(qdata.action); //返回“更新”
console.log(qdata.id); //返回“ 5221”终端输出
$ node urlParsingExample.js localhost:8080 /index.php ?type=page&action=update&id=5221 page update 5221
Node.js示例:解析JSON文件
以下示例可帮助您使用JSON。parse()函数并从JSON对象访问元素。
// json数据
var jsonData = '{"persons":[{"name":"John","city":"New York"},{"name":"Phil","city":"Ohio"}]}'; 
 
// 解析json
var jsonParsed = JSON.parse(jsonData); 
 
// 访问元素
console.log(jsonParsed.persons[0].name);运行nodejs-parse-json.js的终端输出
arjun@arjun-VPCEH26EN:~/workspace/nodejs$ node nodejs-parse-json.js John
Node.js示例:创建HTTP Web服务器
Node.js示例–一个HTTP Web服务器,它准备带有HTTP标头和消息的响应。
// 在文件中引入http模块
var http = require('http'); 
 
// 创建一个服务器
http.createServer(function (req, res) { 
    // http标头
    // 200-确定消息
    // 要使用html内容进行响应,“ Content-Type”应为“ text / html”
    res.writeHead(200, {'Content-Type': 'text/html'});  
    res.write('Node.js says hello!'); //给客户写回应
    res.end(); //结束回应
 }).listen(9000); //服务器对象在端口9000上侦听运行服务器
$ node httpWebServer.js
打开浏览器并点击URL“ http://127.0.0.1:9000/”,以触发对我们的Web服务器的请求。
