文档编号 O.T.5.01-1
项目名称 | P2P在线交易平台 | ||
---|---|---|---|
文档名称 | Node.js&VUE学习路径调研 | ||
作者 | 盐析 | ||
最后更新时间 | 2021-11-22 | ||
版本更新概要 | |||
版本号 | 时间 | 更新人 | 更新摘要 |
V0.1 | 2021-11-22 | 盐析 | 学习路径调研初版 |
V0.2 |
安装全流程请参考此篇帖子:
https://www.cnblogs.com/xifengxiaoma/p/9494068.html
JS中,用var定义(声明)变量:
function foo() {} var a = 0; var b = 'a'; var c = 1.0; var d = foo;
一种是类似C++的类型:
for(var i = 0; i < foo; i++) { //... }
一种是for...in循环遍历
var foo = { "hello" : "world", "node" : "js", "blahblah" : "bar" }; for(var key in foo) { console.log(key + ": " + foo[key]); }
输出:
hello: world node: js blahblah: bar
实例:
var person = { firstName: "Bill", lastName : "Gates", id : 678, fullName : function() { return this.firstName + " " + this.lastName; } };
参考链接:https://www.w3school.com.cn/js/js_objects.asp
加载http核心模块:
var http = require("http")
创建一个web服务器,返回一个server实例:
var http = require("http")
服务端接收到来自客户端的请求时"request"执行回调函数
server.on("request",function(request,response){ console.log("接受到请求了!url:"+request.url) console.log("请求的Ip"+response.socket.remoteAddress+":"+response.socket.remotePort) var str=request.url var mes if(str === "/"){ response.end("Index page") }else if(str == "/login"){ response.end("登录") }else if(str == "/haha"){ response.end("哈哈") } // 响应内容只能是二进制数据或字符串 if(str == "/product"){ var product=[ { name: "apple", price: 3500 }, { name: "banana", price: 5330 }, { name: "banana", price: 5330 } ] response.end(JSON.stringify(product)) } })
加载文件系统模块:
var fs=require('fs')//加载fs核心模块
读操作:
fs.readFile('readme.txt',function(err,data){ if(err){ return console.log('file read err!') } console.log(data.toString) })
写操作:
fs.readFile('readme.txt',function(err,data){ if(err){ return console.log('file read err!') } console.log(data.toString) })
这是Node.js提供的路径模块。主要是为了解析路径。
path.parse('/home/user/dir/file.txt'); // Returns: // { root: '/', // dir: '/home/user/dir', // base: 'file.txt', // ext: '.txt', // name: 'file' }
预览结构:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width,initial-scale=1.0"> <link rel="icon" href="<%= BASE_URL %>favicon.ico"> <title><%= htmlWebpackPlugin.options.title %></title> </head> <body> <noscript> <strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong> </noscript> <div id="app"></div> <!-- built files will be auto injected --> </body> </html>,下面有一行注释,构建的文件将会被自动注入,也就是说我们编写的其它的内容都将在这个 div 中展示。
<template> <div id="app"> <img alt="Vue logo" src="./assets/logo.png"> <HelloWorld msg="Welcome to Your Vue.js App"/> </div> </template> <script> import HelloWorld from './components/HelloWorld.vue' export default { name: 'App', components: { HelloWorld } } </script> <style> #app { font-family: Avenir, Helvetica, Arial, sans-serif; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-align: center; color: #2c3e50; margin-top: 60px; } </style>
把这个文件称为“根组件”,因为其它的组件又都包含在这个组件中。
import Vue from 'vue' import App from './App.vue' import router from './router' Vue.config.productionTip = false new Vue({ router, render: h => h(App) }).$mount('#app')
import 的几个模块来源于App.vue中写的组件,其中 vue 模块在 node_modules 中,App 即 App.vue 里定义的组件,router 即 router 文件夹里定义的路由。
参考菜鸟教程:https://www.runoob.com/vue3/vue3-tutorial.html,主要学习模板语法到事件处理的部分。