学习Node.js笔记(一)

news/2024/7/2 21:29:06

从最简单的一个node服务器开始说起

nodejs最常用的就是搭建服务器,今天就从0开始搭建自己的服务器,要想使用node来进行搭建服务器首先肯定是得下载node,直接百度一下node,从官网下载。下载完成后,直接安装软件就可以了。

这样就可以愉快的撸我们的服务器了。

我们创建一个文件叫server.js

<!--引入http模块-->
var http = require('http')

<!--创建http服务,服务中会有一个回调函数,request(请求)、response(返回值)-->
var server = http.createServer(function(request,response){
    
    // 返回给前端的数据
    response.write('hello nodejs')
    response.end(null)
})

<!--监听http服务的端口号-->
server.listen('80',function(){
    console.log('服务在80端口启动')
})
复制代码

其实这样就可以创建一个简单的服务器了。可以打开cmd,进入到你的项目目录,输入node server.js这个时候大家可以看到服务在80端口启动字样了。

但是这样简单的服务器是不能满足我们的需求的

当前台通过form表单给我们传递数据的时候,我们的node服务器是怎么接受到参数的呢。

我创建一个简单的form.html作为前端代码,来实现一个简单的登陆效果。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <form action="http://localhost/login" method="GET">
        用户:<input type="text" name="user"><br>
        密码:<input type="password" name="pass"><br>
        <input type="submit" value="登陆">
    </form>
</body>
</html>
复制代码

创建一个server.js

<!--引入http模块-->
var http = require('http')
var url = require('url') // 引入url模块,处理前端传递过来的参数

<!--创建一个node服务(为了方便,这里把request、response简写成req、res当然这样是支持的)-->
var server = http.createServer(function(req,res){
    
<!--前端传递的参数通过req给node服务器-->
    console.log(req) //req包含了前端给我们的很多的参数,可以打印出来看一下。
    <!--但我们要的参数是通过get传递过来的url-->
    var urlobj = url.parse(req.url)
    var query = urlobj.query 
    console.log(query) // 得到就是form传递过来的数据
    
})

server.listen('80',function(){
    console.log('服务在80端口启动')
})
复制代码
user=cbq123456&pass123456
我们后端可以得到这样的数据
复制代码

这样我们就可以轻松拿到前端给我们的数据了

如何把处理前端给我们的数据呢

我们想把这个字符变成json数据格式,刚好可以使用node为我们提供的querystring方法

var urlObj = url.parse(request.url, true) // 只需要在添加一个true,就可以
var query = urlObj.query // 得到的结果就是{ user: 'abc', pass: '123456' }
复制代码

以上就是关于node服务器的最基础的知识点,如果有什么写的不好的地方,欢迎各位大大吐槽。


http://www.niftyadmin.cn/n/4110982.html

相关文章

SQL SERVER 90度行列互换

我们有时候在处理数据显示的时候&#xff0c;需要把之前的数据进行90度的行列互转&#xff08;注&#xff1a;不是行转列&#xff09;&#xff0c;数据处理起来比较麻烦&#xff0c;提供一个方法&#xff0c;测试数据&#xff1a; --测试数据 if not object_id(tab) is null d…

Java 8 lambda 表达式10个示例

Java 8 发布于4年前&#xff0c;日期是2014年3月18日&#xff0c;这次开创性的发布在Java社区引发了不少讨论&#xff0c;并让大家感到激动。特性之一便是随同发布的lambda表达式&#xff0c;它将允许我们将行为传到函数里。在Java 8之前&#xff0c;如果想将行为传入函数&…

siri快捷指令_如何查找和使用所有Siri快捷方式建议

siri快捷指令Siri Shortcuts arrived alongside iOS 12 in September 2018, along with the Shortcuts app and all that it entailed. The two features upped the iOS automation game considerably, but not without causing confusion. Here’s what Siri Shortcuts are, a…

解决Centos7下安装vsftpd问题

今天在一台新的服务器上安装vsftp时&#xff0c;使用yum安装&#xff0c;发现提示No package avaible。 后来找了半天&#xff0c;发现一个StackOverFlow上的教程。 先去https://fedoraproject.org/wiki/EPEL上下载对应版本的rpm包。 执行yum install dl.fedoraproject.org/pub…

一款吃鸡物理外挂推荐给你|极客商城

每天超过8小时工作之后&#xff0c;身心俱疲&#xff0c;这时候最想彻底地放松一下。 打开现在街知巷闻的手游《绝地求生&#xff1a;刺激战场》准备酣战一场&#xff0c;等待匹配的时间里点开自己战绩看了看。WHAT&#xff1f;再看看其他朋友的战绩。感觉这一天更累了……我是…

SQL SERVER MERGE 有则更新无则插入

我们在处理数据的时候&#xff0c;往往会有“有则更新、无则插入”的需求&#xff0c;在SQL 2008 之前&#xff0c;通常是通过if 判断等&#xff0c;来做查询处理&#xff0c;SQL 2008 引入了MERGE &#xff0c;可以更好的实现我们的需求&#xff0c;测试数据&#xff1a; --测…

如何在Nintendo Switch上管理和传输数据

Nintendo任天堂 If you’ve purchased a new Nintendo Switch, here’s how to ensure your save data is up to date. We’ll also cover what the non-subscriber Save Data Cloud can do and how to quickly transfer your save data from one Switch to another. 如果您购买…

日志服务Python消费组实战(二):实时分发数据

场景目标 使用日志服务的Web-tracking、logtail&#xff08;文件极简&#xff09;、syslog等收集上来的日志经常存在各种各样的格式&#xff0c;我们需要针对特定的日志&#xff08;例如topic&#xff09;进行一定的分发到特定的logstore中处理和索引&#xff0c;本文主要介绍如…