Nodejs 学习(一)

1, hello world

console.log('hello world');

这是在后台打印hello world, 没什么意义, 以为nodejs主要应用于web 服务端, 所以可以使用下面的代码在浏览器上显示hello world.

var http = require('http');

http.createServer(function(request, response) {
    response.writeHead(200,{'Content-type':'text/html'})
    response.write('Hello World');
    console.log('hehe')
    response.end('')
}).listen(80);
console.log('Server is running at 127.0.1.1:80')

其中 var http=requre('http')引入http模块,类似python 中import。http.createServer函数时用来创建一个HTTP服务器, 并将requestListener作为reqeust事件的监听函数。 语法为

http.createServer([requestListener])

接收参数:

requestListener 请求处理函数,自动添加到 request 事件,函数传递两个参数:

req  请求对象,想知道req有哪些属性,可以查看 “http.request 属性整合”。

res   响应对象 ,收到请求后要做出的响应。想知道res有哪些属性,可以查看 “http.response属性整合”。
response.writeHead(200,{'Content-type':'text/html'})//写响应header
response.write('Hello World');//写响应body
response.end('')//最后这个一定要加, 表示响应结束, 如果不加浏览器页面就是一直加载的状态。 

2, 调用函数(内部+外部)

内部函数调用, 即函数定义于函数调用都在同一文件, 比如上面的例子我们可以将匿名监听函数内部的操作用一个函数myfun代替, 在createServer中可以直接调用

//main.js
var http = require('http');
function myfun(req, res) {
    res.writeHead(200,{'Content-type':'text/html'})
    res.write('I am myfun')
    res.end()
}
http.createServer(function(request, response) {
     myfun(request, response) 

}).listen(80);
console.log('Server is running at 127.0.1.1:80')

如果函数定义在另外的文件(通常存在于大型项目的情况, 函数的定义和调用往往要分开, 存在不同的文件), 例如在在文件models里面有文件functions.js里面定义了我们想要调用的函数myfun, 我们可以这么写

//models/functions.js
function myfun(req, res) {
    res.writeHead(200,{'Content-type':'text/html,charset=utf-8'})
    res.write('I am myfun')
    res.end()
}
module.exports=myfun

除了定义myfun函数之外, 还要有加上最后的module.exports=myfun来表明函数可以被其他文件里的程序调用。 然后在监听函数所在文件中引入这个函数就可以调用了, 注意此时变量myfun就是一个函数变量, 可以通过这个函数变量调用定义的函数。

var http = require('http');
var myfun=require('./models/functions.js')
http.createServer(function(request, response) {
     myfun2(request, response) 

}).listen(80);
console.log('Server is running at 127.0.1.1:80')

如果需要调用其他文件中定义的多个函数可以这么做

module.exports.myfun1=myfun1
module.exports.myfun2=myfun2

另外一种方式就是下面这种。

//models/function.js
module.exports={
    myfun: function(req, res) {
    res.writeHead(200,{'Content-type':'text/html,charset=utf-8'})
    res.write('I am myfun')
    res.end()
}, 

    myfun2: function(req, res) {
    res.writeHead(200,{'Content-type':'text/html,charset=utf-8'})
    res.write('I am myfun2')
    res.end()
}
}

这时候module.exports被赋值为一个对象, 所以在调用文件中引入的也是这对象而非函数变量, 所以调用方式略有不同。

var http = require('http');
var functions=require('./models/functions.js')
http.createServer(function(request, response) {
     functions.myfun2(request, response) 

}).listen(80);
console.log('Server is running at 127.0.1.1:80')

此时除了可以用上面的.调用之外还可以用下面的方式调用

function['myfunction'](request, response)

这种调用方式在后续的router应用中非常有用。

3, 调用模块(面向对象)

这里我们想要实现一个继承关系,在nodejs中类的定义也是用function关键字, 而不是class, 在类中用this关键字指定类成员变量和成员函数。 首先建立一个User类。

//--------------User.js--------------  
function  User(id,name,age){
    this.id=id;//属性
    this.name=name;//属性
    this.age=age;//属性
    this.enter=function(){//方法
        console.log("进入图书馆");
    }
}
module.exports  =  User;

然后再建立一个Teacher类, Teacher继承于User,首先是要引入User,类似于上面的函数的调用。 这里需要注意的是在子类中对父类进行初始化的特殊写法, User.apply(this,[id,name,age]);//继承User

var  User  =  require('./User');
function  Teacher(id,name,age){
   User.apply(this,[id,name,age]);//继承User
    this.teach=function(res){//自有方法
        res.write(this.name+"老师讲课");
    }
}
module.exports    =    Teacher;
对于想要学习 Node.js 的人来说,以下是一个常见的学习路线: 1. 入门基础知识:首先了解 JavaScript 的基础知识,包括变量、控制流、函数等等。可以通过在线教程、书籍或视频课程学习。 2. 了解后端开发概念:学习关于服务器端开发的基本概念,例如 HTTP、网络通信、数据库等。 3. 学习 Node.js 基础:通过官方文档或在线教程学习 Node.js 的基础知识,包括安装、模块系统、事件驱动编程等。 4. 掌握核心模块:了解和熟悉 Node.js 的核心模块,例如 fs、http、path 等,以便能够构建简单的服务器应用程序。 5. 学习 Express 框架:Express 是一个流行的 Node.js Web 框架,学习它可以帮助你构建更复杂的 Web 应用程序。可以阅读官方文档或参考教程来学习 Express。 6. 学习数据库集成:了解如何在 Node.js 中使用数据库,例如 MongoDB 或 MySQL。学习数据库连接、CRUD 操作等。 7. 异步编程:深入理解 Node.js 的异步编程模型,包括回调函数、Promise、async/await 等。 8. 学习 RESTful API 设计:了解如何设计和构建符合 RESTful 风格的 API。 9. 深入学习和探索:根据个人兴趣和需求,学习其他 Node.js 相关的技术、工具和框架,例如 WebSocket、GraphQL、Socket.io 等。 记住,这只是一个大致的学习路线,你可以根据自己的兴趣和需求进行调整和扩展。实践对于学习 Node.js 来说非常重要,所以尽量多做一些实际项目来巩固所学知识。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值