Node.js ------后端系统
Js 的运行环境,在谷歌控制台运行,在cmd也一样可以执行js代码,使用V8引擎,本地浏览器环境
在node.js 不需要浏览器环境,直接在node环境运行
1.直接 node 回车键-----直接把代码粘贴----执行
2.直接node 要运行的文件名.js,----执行
创建一个简单的服务器:
在nodejs运行
var a = 1;
console.log(a)
require配合这个module.exports home自定义的模块
var b =require("./home.js")
console.log(b.add(3,4))
创建一个简单的服务器
步骤1 用require,引入http模块
步骤2用http模块的createServer方法创建一个服务器,createServer接受一个函数
步骤3用response.end方法相应数据到前端
步骤4用listen打开接口
代码如下:
var http =require("http");
//引入mysql第三方模块
var mysql =require("mysql");
//处理路由的原生模块
var url =require("url");
//处理路由参数的模块
var querystring =require("querystring")
//进行数据库连接
var connection =mysql.createConnection({
host:'localhost',
user:'test',
password:'123456789',
database:'laoyao'
});
//执行连接
connection.connect();
命令行:cd js 定位到js文件,因为js文件应该放在与index.html的同一级下
否则出现错误:
创建一个服务器应用:
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('HelloWorld');
response.end(JSON.stringify(result))
}).listen(8888);
// 终端打印如下信息
console.log('Serverrunning at http://127.0.0.1:8888/');
从数据库把数据拉回来:
<!-- database-sql-> nodejs(中间件)-ajax-> 前端 -->
1.在命令行输入 cnmp installmyaql
2.//引人mysql 第三方模块
var mysql = require('mysql');
var connection =mysql.createConnection({
host : 'localhost',
user : 'abc',
password : 'abc',
database : 'test'
});
connection.connect();
connection.query('SELECT* From classs', function (error, results, fields) {
if (error) throw error;
console.log('The solution is: ', results);
});
//断开数据库的链接
connection.end();
注意:每执行一次代码都要重启服务器
最终从数据库导出来的结果如下:
解决跨域:
http.createServer(function(request,response) {
//解决跨域
response.setHeader("Access-Control-Allow-Origin","*");
//设置头部信息
/*response.writeHead(200,{
'Content-Type':'text/css'
});*/
//请求的东西 ajax发过来的东西
//response就是服务器相应给浏览器
node.js链接到数据库代码:
https://www.npmjs.com/package/mysql ----借鉴代码网站
<!-- database-sql<- nodejs(中间件)<-ajax- 前端 -->
//mysql
varobj = {
name:'teacher',
}
console.log("路由:" + request.url) //abc?name=yao
console.log("路由的路径:" + url.parse(request.url).pathname) // /abc
varpathname = url.parse(request.url).pathname;
console.log("路由的参数:" + url.parse(request.url).query) //name=yap&skill=ps
varparamsStr = url.parse(request.url).query;
console.log("路由的参数从字符串转为对象")
console.log(querystring.parse(paramsStr))
varparams = querystring.parse(paramsStr);
//console.log("路由参数:"+url.parse(string).query)
//处理路由的逻辑
//url.parse(string).pathname