这几天学了下Node.js,凭借自己查资料和看教程(cnds),发现没有找到有关node.js路由跳转的一些东西,所以打算自己写一点儿对node.js的理解 ,也不知道是对是错 ,希望对大家有帮助
这个是项目目录
index.html代码
<html> <body> 这里是静态页面 <form action="http://127.0.0.1:8081/process_get" method="POST"> First Name: <input type="text" name="first_name"> <br> Last Name: <input type="text" name="last_name"> <input type="submit" value="Submit"> </form> </body> </html>upload.html代码
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> 这里是html页面 </head> <body> </body> </html>
upload.ejs. 和 upload.jade
<html> <body> 这里是ejs <form action="http://127.0.0.1:8081/process_get" method="POST"> First Name: <input type="text" name="first_name"> <br> Last Name: <input type="text" name="last_name"> <input type="submit" value="Submit"> </form> </body> </html>
<html> <body> 这里是jade <form action="http://127.0.0.1:8081/process_get" method="POST"> First Name: <input type="text" name="first_name"> <br> Last Name: <input type="text" name="last_name"> <input type="submit" value="Submit"> </form> </body> </html>
下面来看代码吧 这个是用npm自己生成的一个项目 我就是在上面来实现吧 具体怎么建立项目 请自己查,毕竟学习不能偷懒
// 加载路由控制 var routes = require('./routes/index'); var users = require('./routes/users'); //创建项目实例 var app = express(); // view engine setup定义EJS模板引擎和模板文件位置,也可以使用jade或其他模型引擎 app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'ejs'); //app.set('view engine', 'jade'); //app.set('view engine','html'); // uncomment after placing your favicon in /public //app.use(favicon(path.join(__dirname, 'public', 'favicon.ico'))); app.use(logger('dev')); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: false })); app.use(cookieParser()); app.use(express.static(path.join(__dirname, 'public'))); // 匹配路径和路由 //访问服务器的静态资源 app.use('/static',express.static(path.join(__dirname, 'static'))); app.use('/', routes); app.use('/', users);上面的 有中文的是我自己弄上去的 注释都很清楚
接下来就是路由了
我在项目目录下 创建了一个 static文件夹 主要是为了放一些静态资源 ,比如 用到的 html/index.html
router.get('/upload.jade', function(req, res, next) { // res.render('upload.jade'); res.end(); }); router.get('/upload.ejs', function(req, res, next) { // res.render('upload.ejs'); res.end(); }); //若没有后缀则按视图解析器的后缀 router.get('/upload.html', function(req, res, next) { // res.render('upload'); res.end(); }); //跳转到静态页面 router.get('/static', function(req, res, next) { // res.redirect('/static/html/index.html'); res.end();
先来看效果 地址栏 http://127.0.0.1:3000/static 刷新
访问 :http://127.0.0.1:3000/upload.ejs
http://127.0.0.1:3000/upload.jade
这个jade可能会 报错 没有这个模型*(包) 用控制台 进入项目目录 npm install jade ( 下次碰到这种首先就是 安装包 )
我们用的是ejs视图渲染 (不知道是不是这样形容)
要是不加后缀 会访问哪一个呢 像访问:http://127.0.0.1:3000/upload
这就取决于
app.set('view engine', 'ejs'); //app.set('view engine', 'jade');这段代码 意思就是 你用的那个引擎 在views目录下如果么有指定 后缀 就默认 渲染引擎
如上代码 访问结果是
还有就是访问静态资源 ;要加
app.use('/static',express.static(path.join(__dirname, 'static'))); app.use('/', routes); app.use('/', users);并注意 要加载 使用路由代码前 如上面这个代码这样
若么有 要访问
http://127.0.0.1:3000/static/html/index.html
是这样的
正确的是
最后 我也是初学者 就是因为在网上没有找到很好的资料 才走了 很多弯路 希望 这个对要学习的人有帮助 若没有用 对浪费你们宝贵的时间抱歉
而且我也不知道 是不是这个样子的 如果有错误 请大家 指点 迷津