node服务器

var http=require('http');
//文件模块  操作文件  读取文件,写入文件
var fs=require('fs');
function read(str,res){
     fs.readFile(str,function(err,data){
        if(!err){
       res.write(data);
       res.end();
        }
  })
}
var server=http.createServer(function(req,res){   //   /img/2.gif
    //接受请求, 做出应有
    
    console.log(req.url);//请求路径   端口后面的,参数前面的   /     /favicon.ico
    if(req.url=='/'){
        read('./index.html',res);
    }else if(req.url=='/favicon.ico'){
        read('./img/ico.png',res);
    }else{
        read('.'+req.url,res);  //  read('.'+'/img/2.gif',res)
    }
    
});
//三个参数,  参数一:端口号(取值范围:0-65535,0-1024系统保留端口,80端口可以省略)
//参数二:域名(ip)
//参数三:回调函数
server.listen(3001,'127.0.0.1',function(err){
    //err 错误对象参数   err-->null   err--->{error:xxx}
    if(!err){//正确
      console.log('服务器成功运行在127.0.0.1:3000上')
    }
})



<!-- action提交地址 -->
<!-- get方式请求特点:1,把参数追加在url后面 2. 明文可见(不安全)3.大小大约为4k-->
<form action="/api/login" method="get">
    用户名:<input type="text" name="user">
    密码:<input type="text" name="pass">
    <button type="submit">登录</button>

</form>
   var http=require('http');
  var fs=require('fs');
  // 处理url
  var url=require('url');
  var json=[{user:'tom',pass:'123456'},{user:'kity',pass:'123'}];
  function read(str,res){
      fs.readFile(str,function(err,data){
          if(!err){
              res.write(data);
              res.end();
          }
      })
  }
  var server=http.createServer(function(req,res){
     // url.parse(参数一:要解析的地址,是否把参数字符串解析成对象)
        var obj=url.parse(req.url,true)
         
        var pathname=obj.pathname;// 请求路径
        var query=obj.query; // 请求参数  字符 ,对象
      //console.log(req.url); /api/login?user=tom&pass=12345

      if(pathname=='/'||pathname=='/index.html'){
             read('./index.html',res);
      }else if(pathname=='/api/login'){  // 登录
             for(var i=0;i<json.length;i++){
                  	                if(json[i].user==query.user&&json[i].pass==query.pass){
                           read('./index2.html',res);
                           return;
                  }
             }
  
             res.setHeader('Content-Type','text/plain;charset=utf-8');
             res.write('登录失败');
             res.end();
      }
        
  })
  
  server.listen(3000,function(err){
      if(!err)console.log('服务器成功运行在3000端口上');
  })

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Node.js 是一种基于 Chrome V8 引擎的 JavaScript 运行环境,允许开发者在服务器端运行 JavaScript 脚本。由于 Node.js 的高效性能、易学性和强大的社区支持,它成为了构建快速、可扩展的网络应用程序的理想选择。 ### Node.js 服务器部署概述 #### 1. 安装 Node.js 首先需要确保您的计算机上已经安装了 Node.js。如果尚未安装,可以从官方网站 (https://nodejs.org/) 下载并按照指示进行安装。 #### 2. 创建项目文件结构 通常,项目文件夹应包含以下几个部分: - `app.js` 或其他代表主应用脚本的文件。 - `config` 文件夹用于配置文件,如数据库连接、API 端点等。 - `public` 文件夹可以存放静态资源,如 CSS 和 JavaScript 文件。 - `server.js` 文件通常用于启动 HTTP 服务器,并引入和设置路由。 #### 3. 编写应用程序代码 在 `app.js` 中编写处理请求的逻辑,例如通过 Express 框架创建路由器: ```javascript const express = require('express'); const app = express(); app.get('/', (req, res) => { res.send('Hello World!'); }); const port = process.env.PORT || 3000; app.listen(port, () => { console.log(`Server is running on port ${port}`); }); ``` #### 4. 配置服务器 在 `server.js` 中设置应用的监听端口,并添加必要的中间件(如错误处理、日志记录等)。 ```javascript const path = require('path'); // ...引入app.js和其他依赖... // 设置静态文件路径 app.use(express.static(path.join(__dirname, 'public'))); // 启动服务器 app.listen(port); console.log(`App listening at http://localhost:${port}`); ``` #### 5. 测试应用 使用浏览器或发送 HTTP 请求到本地服务器验证应用是否正常工作。 #### 6. 部署应用 - **使用本地服务器**(如 Nodemon)方便调试。 - **云服务**(AWS Lambda, Google Cloud Functions, Heroku, Netlify 等)提供在线部署选项。 - **Docker** 封装应用及其依赖项,简化跨平台部署过程。 ### 示例命令和工具 - 使用 Docker 打包应用: ```bash docker build -t my-node-app . docker run -p 8080:3000 my-node-app ``` - 使用 GitLab CI 或 Jenkins 自动化部署流程。 ### 相关问题: 1. 如何优化 Node.js 应用程序的性能? 2. 怎样在生产环境中安全地部署 Node.js 应用? 3. Node.js 应用如何与其他技术栈集成(如数据库、前端框架等)?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值