zoukankan      html  css  js  c++  java
  • Node.js初学第三天

    一、Post提交

    1、前端代码:

    <!DOCTYPE HTML>
    <html>
    	<head>
    		<meta charset="UTF-8">
    		<title></title>
    	</head>
    	<body>
    			<form action="http://127.0.0.1:4050/dopost" method="post" enctype="multipart/form-data">
    				姓名<input type="" name="name"   />
    				<br />
    				<input type="radio" name="sex" value="男" />男
    				<input type="radio" name="sex" value="女" />女
    				<br/>
    				图片:<input type="file" name="imgs">
    				<br/>
    				<input type="submit" value="提交"/>
    			</form>
    	</body>
    </html>
    

    2、JS代码:

    var formidable = require('formidable');//引用图片上传的包:https://www.npmjs.com/package/formidable
    var  http = require('http');
    var   util = require('util');
    var fs = require("fs");
    var sd = require("silly-datetime");
    var path = require("path");
    http.createServer(function(req,res){
        console.log(1);
        console.log(req.url);
        if (req.url == '/dopost' && req.method.toLowerCase() == 'post') {
            // parse a file upload
            var form = new formidable.IncomingForm();
            form.uploadDir = "./mydir";//设置图片保存路径
            form.parse(req, function(err, fields, files) {
                console.log(fields);
                console.log(files);
                res.writeHead(200, {'content-type': 'text/plain'});
                res.write('received upload:
    
    ');
                res.end(util.inspect({fields: fields, files: files}));
               /*此段代码可实现更改图片名
                var ttt = sd.format(new Date(), 'YYYYMMDDHHmmss');
                var ran = parseInt(Math.random() * 89999 + 10000);
                var extname = path.extname(files.imgs.name);
                //执行改名
                var oldpath = __dirname + "/" + files.imgs.path;
                //新的路径由三个部分组成:时间戳、随机数、拓展名
                var newpath = __dirname + "/mydir/" + ttt + ran + extname;
                //改名
                fs.rename(oldpath,newpath,function(err){
                    if(err){
                        throw Error("改名失败");
                    }
                    res.writeHead(200, {'content-type': 'text/plain'});
                    res.end("成功");
                });*/
            });
            return;
        }
    }).listen("4050","127.0.0.1");

    3、输出结果如下:

    { name: '1', sex: '男' }
    { imgs: 
       File {
         domain: null,
         _events: {},
         _eventsCount: 0,
         _maxListeners: undefined,
         size: 178852,
         path: 'mydir\upload_dc2eb054a1b78f04543fc2d273b2bd03',
         name: '1.gif',
         type: 'image/gif',
         hash: null,
         lastModifiedDate: Wed Aug 03 2016 11:17:57 GMT+0800 (中国标准时间),
         _writeStream: 
          WriteStream {
            _writableState: [Object],
            writable: true,
            domain: null,
            _events: {},
            _eventsCount: 0,
            _maxListeners: undefined,
            path: 'mydir\upload_dc2eb054a1b78f04543fc2d273b2bd03',
            fd: null,
            flags: 'w',
            mode: 438,
            start: undefined,
            pos: undefined,
            bytesWritten: 178852,
            closed: true } } }
    

    PS:1、formidable 是第三方模块,需要先在工作区安装(npm install formidable),网址:https://www.npmjs.com/package/formidable;

     二、模板引擎EJS

    1、npm网址:https://www.npmjs.com/package/ejs,在本地安装ejs;

    2、代码如下:

    HTML代码:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    <p>测试ejs(版本 <%= s  %></p>
    </body>
    </html>

    JS代码:

    var http=require("http");
    var fs=require("fs");
    var ejs=require("ejs");//引入ejs
    http.createServer(function(req,res){
        //1.读取静态文件
        fs.readFile("./View/ejstest.html",function(err,data){
            if(err)
            {
                throw  err;
            }
            var content=data.toString();
            var data={
                s:"1.0"
            };
            var results=ejs.render(content,data);
            res.writeHead(200,{"Content-Type":"text/html;charset=UTF8"});
            res.end(results);
        });
    }).listen("4050","127.0.0.1");

    在浏览器中输入:http://127.0.0.1:4050/  运行结果:测试ejs(版本 1.0 )

      

  • 相关阅读:
    hdu4578 (多标记线段树)
    hdu4757 (可持久化字典树+LCA)
    CF940F Machine Learning (带修改莫队)
    csps模拟测试7576一句话题解
    csps模拟测试74梦境,玩具,飘雪圣域题解
    csps模拟测试7273简单的操作小P的2048小P的单调数列小P的生成树
    csps模拟测试707172部分题解myc
    莫队算法学习
    csps模拟69chess,array,70木板,打扫卫生题解
    csps模拟68d,e,f题解
  • 原文地址:https://www.cnblogs.com/czqbk/p/5732162.html
Copyright © 2011-2022 走看看