Node.js 学习笔记(二)

本文介绍Express.js的基本概念、安装步骤及使用方法,并通过实例演示如何搭建简易用户登录系统。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

express是nodejs的一个轻量级框架。

express的功能很简单, 功能依赖中间件。

 

安装:在你的项目文件价里打开cmd窗口,在里面使用npm工具(就是在cmd里输入 npm install express)下载express。
 
用法:
1.创建服务:
var server=express();
2.监听
server.listen(8080);
3.处理请求
server.use('地址',function(req,res){
});
 

express简单示例:

const express= require('express');
var server=express();
// server.use('/',function(req,res){
// use里的第一个参数代表用户请求根目录
// });
server.use('/',function(){
  res.send('abc');
  res.end();
})
server.listen(8080);

 

结果:

 req与res是经过express封装过的,在保留原生功能的基础下又增强了一些方法。如:res.send(),这个方法可以直接在网页上显示json(原来用于显示的write()方法无法显示json)。

 
监听请求的三种方法:
.get('/',function(req,res){});//接受get方法
.post('/',function(req,res){});//接受post方法
.use('/',function(req,res){}); //get,post都能接受
 
示例:
html:
<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title></title>
  </head>
  <body>
    <form class="" action="http://localhost:8080" method="get">
      <input type="text" name="" value="" placeholder="输入用户名">
      <input type="submit" name="" value="提交">
    </form>
  </body>
</html>
 
node:
const express= require('express');
var server=express();
server.post('/',function(req,res){
  console.log('有post');
});
server.get('/',function(req,res){
  console.log('有get');
})
server.use('/',function(req,res){ // use里的第一个参数代表用户请求根目录
console.log('有use');
  // res.send('abc');
  // res.end();
})
server.listen(8080);
 
中间件:express-static
用法:
server.use(express.static('www'));//设置静态文件目录
上面那行代码的意思是讲静态文件目录设置为根目录。
示例:
  
node:
const express= require('express');
const expressStatic=require('express-static');
var server=express();
server.listen(8080);
server.use(expressStatic('./www'));
在地址栏中输入: http://localhost:8080/index.html
 

转跳成功~

——————————————————————————
用express搭建简易用户登录系统
//res.query--->将传入的数据处理成键值对
 
html:
<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title></title>
    <script src="ajax.js" charset="utf-8"></script>
    <script type="text/javascript">
      window.onload=function(){
        var oUser=document.getElementById('user');
        var oPass=document.getElementById('pass');
        var oBtn=document.getElementById('btn1');
 
        oBtn.onclick=function(){
          ajax({
            url:'/login',
            data:{user:oUser.value,pass:oPass.value},
            success:function(str){
              var json=eval('('+str+')');
              if(json.ok){
                alert('登录成功');
              }else{
                alert('失败:'+json.msg);
              }
            },
            error:function(){
              alert('通信失败');
            }
          });
        };
      };
    </script>
  </head>
  <body>
    <div>
      <input type="text" id="user"><br />
      <input type="password" id="pass"><br />
      <input type="button" value="登录" id="btn1" />
    </div>
  </body>
</html>

 

ajax:
function json2url(json){
    var arr=[];
    for(var name in json){
        arr.push(name+'='+json[name]);
    }
    return arr.join('&');
}
 
function ajax(json){
    json=json || {};
    if(!json.url)return;
    json.data=json.data || {};
    json.type=json.type || 'get';
 
    var timer=null;
 
    if(window.XMLHttpRequest){
        var oAjax=new XMLHttpRequest();
    }else{
        var oAjax=new ActiveXObject('Microsoft.XMLHTTP');
    }
 
    switch(json.type){
        case 'get':
            oAjax.open('GET',json.url+'?'+json2url(json.data),true);
            oAjax.send();
            break;
        case 'post':
            oAjax.open('POST',json.url,true);
            oAjax.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
            oAjax.send(json2url(json.data));
            break;
    }
 
    oAjax.onreadystatechange=function(){
        if(oAjax.readyState==4){
            clearTimeout(timer);
            if(oAjax.status>=200 && oAjax.status<300 || oAjax.status==304){
                json.success && json.success(oAjax.responseText);
            }else{
                json.error && json.error(oAjax.status);
            }
        }
    };
}
 

 

node:
const express= require('express');
const expressStatic=require('express-static');
var server=express();
server.listen(8080);
var users={
  'blue':'123456',
  'zhangsan':'123789',
  'lisi':'111'
}
server.get('/login',function(req,res){
  var user=req.query['user'];
  var pass=req.query['pass'];
  if(users[user]==null){ //键值对
    res.send({ok:false,msg:'此用户不存在'});
  }else{
    if(users[user]!=pass){
      res.send({ok:false,msg:'密码错了'});
    }else{
      res.send({ok:true,msg:'成功'});
    }
  }
})
server.use(expressStatic('./www'));

 

 
内容概要:该PPT详细介绍了企业架构设计的方法论,涵盖业务架构、数据架构、应用架构和技术架构四大核心模块。首先分析了企业架构现状,包括业务、数据、应用和技术四大架构的内容和关系,明确了企业架构设计的重要性。接着,阐述了新版企业架构总体框架(CSG-EAF 2.0)的形成过程,强调其融合了传统架构设计(TOGAF)和领域驱动设计(DDD)的优势,以适应数字化转型需求。业务架构部分通过梳理企业级和专业级价值流,细化业务能力、流程和对象,确保业务战略的有效落地。数据架构部分则遵循五大原则,确保数据的准确、一致和高效使用。应用架构方面,提出了分层解耦和服务化的设计原则,以提高灵活性和响应速度。最后,技术架构部分围绕技术框架、组件、平台和部署节点进行了详细设计,确保技术架构的稳定性和扩展性。 适合人群:适用于具有一定企业架构设计经验的IT架构师、项目经理和业务分析师,特别是那些希望深入了解如何将企业架构设计与数字化转型相结合的专业人士。 使用场景及目标:①帮助企业和组织梳理业务流程,优化业务能力,实现战略目标;②指导数据管理和应用开发,确保数据的一致性和应用的高效性;③为技术选型和系统部署提供科学依据,确保技术架构的稳定性和扩展性。 阅读建议:此资源内容详尽,涵盖企业架构设计的各个方面。建议读者在学习过程中,结合实际案例进行理解和实践,重点关注各架构模块之间的关联和协同,以便更好地应用于实际工作中。
资 源 简 介 独立分量分析(Independent Component Analysis,简称ICA)是近十年来逐渐发展起来的一种盲信号分离方法。它是一种统计方法,其目的是从由传感器收集到的混合信号中分离相互独立的源信号,使得这些分离出来的源信号之间尽可能独立。它在语音识别、电信和医学信号处理等信号处理方面有着广泛的应用,目前已成为盲信号处理,人工神经网络等研究领域中的一个研究热点。本文简要的阐述了ICA的发展、应用和现状,详细地论述了ICA的原理及实现过程,系统地介绍了目前几种主要ICA算法以及它们之间的内在联系, 详 情 说 明 独立分量分析(Independent Component Analysis,简称ICA)是近十年来逐渐发展起来的一种盲信号分离方法。它是一种统计方法,其目的是从由传感器收集到的混合信号中分离相互独立的源信号,使得这些分离出来的源信号之间尽可能独立。它在语音识别、电信和医学信号处理等信号处理方面有着广泛的应用,目前已成为盲信号处理,人工神经网络等研究领域中的一个研究热点。 本文简要的阐述了ICA的发展、应用和现状,详细地论述了ICA的原理及实现过程,系统地介绍了目前几种主要ICA算法以及它们之间的内在联系,在此基础上重点分析了一种快速ICA实现算法一FastICA。物质的非线性荧光谱信号可以看成是由多个相互独立的源信号组合成的混合信号,而这些独立的源信号可以看成是光谱的特征信号。为了更好的了解光谱信号的特征,本文利用独立分量分析的思想和方法,提出了利用FastICA算法提取光谱信号的特征的方案,并进行了详细的仿真实验。 此外,我们还进行了进一步的研究,探索了其他可能的ICA应用领域,如音乐信号处理、图像处理以及金融数据分析等。通过在这些领域中的实验和应用,我们发现ICA在提取信号特征、降噪和信号分离等方面具有广泛的潜力和应用前景。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值