国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

輕松搭建遠(yuǎn)程N(yùn)ode.js服務(wù)端,讓你的應(yīng)用在公共網(wǎng)絡(luò)中暢行無(wú)阻!

這篇具有很好參考價(jià)值的文章主要介紹了輕松搭建遠(yuǎn)程N(yùn)ode.js服務(wù)端,讓你的應(yīng)用在公共網(wǎng)絡(luò)中暢行無(wú)阻!。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

前言

Node.js 是能夠在服務(wù)器端運(yùn)行 JavaScript 的開(kāi)放源代碼、跨平臺(tái)運(yùn)行環(huán)境。Node.js 由 OpenJS Foundation(原為 Node.js Foundation,已與 JS Foundation 合并)持有和維護(hù),亦為 Linux 基金會(huì)的項(xiàng)目。Node.js 采用 Google 開(kāi)發(fā)的 V8 運(yùn)行代碼,使用事件驅(qū)動(dòng)、非阻塞和異步輸入輸出模型等技術(shù)來(lái)提高性能,可優(yōu)化應(yīng)用程序的傳輸量和規(guī)模。這些技術(shù)通常用于資料密集的即時(shí)應(yīng)用程序。

Node.js 大部分基本模塊都用 JavaScript 語(yǔ)言編寫(xiě)。在 Node.js 出現(xiàn)之前,JavaScript 通常作為客戶(hù)端程序設(shè)計(jì)語(yǔ)言使用,以JavaScript 寫(xiě)出的程序常在用戶(hù)的瀏覽器上運(yùn)行。Node.js 的出現(xiàn)使 JavaScript 也能用于服務(wù)端編程。Node.js 含有一系列內(nèi)置模塊,使得程序可以脫離 Apache HTTP Server 或 IIS,作為獨(dú)立服務(wù)器運(yùn),下面將介紹如何簡(jiǎn)單幾步實(shí)現(xiàn)遠(yuǎn)程公共網(wǎng)絡(luò)下訪問(wèn)windwos node.js的服務(wù)端。

1.安裝Node.js環(huán)境

官網(wǎng)下載node.js,我們選擇64位一鍵安裝

https://nodejs.org/zh-cn/download/

輕松搭建遠(yuǎn)程N(yùn)ode.js服務(wù)端,讓你的應(yīng)用在公共網(wǎng)絡(luò)中暢行無(wú)阻!,網(wǎng)絡(luò)知識(shí),網(wǎng)絡(luò)穿透,前端,node.js,網(wǎng)絡(luò),原力計(jì)劃

安裝好后我們打開(kāi)cmd,輸入命令有正常出來(lái)版本號(hào),表示安裝成功,一鍵安裝版,默認(rèn)會(huì)配置環(huán)境變量。

node -v

輕松搭建遠(yuǎn)程N(yùn)ode.js服務(wù)端,讓你的應(yīng)用在公共網(wǎng)絡(luò)中暢行無(wú)阻!,網(wǎng)絡(luò)知識(shí),網(wǎng)絡(luò)穿透,前端,node.js,網(wǎng)絡(luò),原力計(jì)劃

2.創(chuàng)建node.js服務(wù)

這里我們?cè)诒镜貏?chuàng)建一個(gè)簡(jiǎn)單的nodejs服務(wù),創(chuàng)建一個(gè)貪吃蛇頁(yè)面小游戲來(lái)進(jìn)行演示。

首先在本地創(chuàng)建一個(gè)文件夾,并在文件夾中新建2個(gè)文件,一個(gè)是js文件和一個(gè)html文件,需要放在同個(gè)目錄下,然后使用vscode打開(kāi)。

  • game.html文件
  • nodetest.js文件

輕松搭建遠(yuǎn)程N(yùn)ode.js服務(wù)端,讓你的應(yīng)用在公共網(wǎng)絡(luò)中暢行無(wú)阻!,網(wǎng)絡(luò)知識(shí),網(wǎng)絡(luò)穿透,前端,node.js,網(wǎng)絡(luò),原力計(jì)劃

game.html添加如下html代碼并保存,以下代碼是一個(gè)html頁(yè)面小游戲(貪吃蛇)

<!DOCTYPE html>
<html>
<head>
	<title>貪吃蛇</title>
	<meta charset="UTF-8">
	<meta name="keywords" content="貪吃蛇">
	<meta name="Description" content="這是一個(gè)初學(xué)者用來(lái)學(xué)習(xí)的小游戲">
	<style type="text/css">
	*{margin:0;}
	.map{margin:100px auto;
		height:600px;
		width:900px;
		background:#00D0FF;
		border:10px solid #AFAEB2;
		border-radius:8px;
	}
	</style>
</head>
 
<body>
<div class="map">
<canvas id="canvas" height="600" width="900">
	
</canvas>
</div>
 
<script type="text/javascript">
 //獲取繪制工具
	/*
	var canvas = document.getElementById("canvas");
	var ctx = canvas.getContext("2d");//獲取上下文
	ctx.moveTo(0,0);
	ctx.lineTo(450,450);*/
	var c=document.getElementById("canvas");
    var ctx=c.getContext("2d");
    /*ctx.beginPath();
    ctx.moveTo(0,0);
    ctx.lineTo(450,450);
    ctx.stroke();
    */
 
    var snake =[];//定義一條蛇,畫(huà)蛇的身體
    var snakeCount = 6;//初始化蛇的長(zhǎng)度
	var foodx =0;
	var foody =0;
    var togo =0;
    function drawtable()//畫(huà)地圖的函數(shù)
    {
 
 
    	for(var i=0;i<60;i++)//畫(huà)豎線
    	{
    		ctx.strokeStyle="black";
    		ctx.beginPath();
    		ctx.moveTo(15*i,0);
    		ctx.lineTo(15*i,600);
    		ctx.closePath();
    		ctx.stroke();
    	}
        for(var j=0;j<40;j++)//畫(huà)橫線
    	{
    		ctx.strokeStyle="black";
    		ctx.beginPath();
    		ctx.moveTo(0,15*j);
    		ctx.lineTo(900,15*j);
    		ctx.closePath();
    		ctx.stroke();
    	}
    	
    	for(var k=0;k<snakeCount;k++)//畫(huà)蛇的身體
			{
			ctx.fillStyle="#000";
			if (k==snakeCount-1)
			{
				ctx.fillStyle="red";//蛇頭的顏色與身體區(qū)分開(kāi)
			}
			ctx.fillRect(snake[k].x,snake[k].y,15,15);//前兩個(gè)數(shù)是矩形的起始坐標(biāo),后兩個(gè)數(shù)是矩形的長(zhǎng)寬。
			
			}
			//繪制食物	
    		ctx.fillStyle ="black";
	     ctx.fillRect(foodx,foody,15,15);
	     ctx.fill();
    	
    }
 
    
    function start()//定義蛇的坐標(biāo)
    {
    	//var snake =[];//定義一條蛇,畫(huà)蛇的身體
        //var snakeCount = 6;//初始化蛇的長(zhǎng)度
		
		for(var k=0;k<snakeCount;k++)
    		{
    			snake[k]={x:k*15,y:0};
    			
            }
			
		  drawtable();
          addfood();//在start中調(diào)用添加食物函數(shù)
 
    }
 
    function addfood()
	{
	foodx = Math.floor(Math.random()*60)*15; //隨機(jī)產(chǎn)生一個(gè)0-1之間的數(shù)
	foody = Math.floor(Math.random()*40)*15;
		
		for (var k=0;k<snake;k++)
		{
			if (foodx==snake[k].x&&foody==sanke[k].y)//防止產(chǎn)生的隨機(jī)食物落在蛇身上
			{	
			addfood();
			}
		}
	
	
	}	
    		
   function move()
   {
	switch (togo)
	{
	case 1: snake.push({x:snake[snakeCount-1].x-15,y:snake[snakeCount-1].y}); break;//向左走
	case 2: snake.push({x:snake[snakeCount-1].x,y:snake[snakeCount-1].y-15}); break;
	case 3: snake.push({x:snake[snakeCount-1].x+15,y:snake[snakeCount-1].y}); break;
	case 4: snake.push({x:snake[snakeCount-1].x,y:snake[snakeCount-1].y+15}); break;
	case 5: snake.push({x:snake[snakeCount-1].x-15,y:snake[snakeCount-1].y-15}); break;
	case 6: snake.push({x:snake[snakeCount-1].x+15,y:snake[snakeCount-1].y+15}); break;
	default: snake.push({x:snake[snakeCount-1].x+15,y:snake[snakeCount-1].y});
	}
    snake.shift();//刪除數(shù)組第一個(gè)元素
   	ctx.clearRect(0,0,900,600);//清除畫(huà)布重新繪制
   	isEat();
	isDead();
	drawtable();
   } 			
   
   function keydown(e)
   {
   switch(e.keyCode)
		{
         case 37: togo=1; break;
		 case 38: togo=2; break;
		 case 39: togo=3; break;
		 case 40: togo=4; break;
		 case 65: togo=5; break;
		 case 68: togo=6; break;
		}
   }
   
   function isEat()//吃到食物后長(zhǎng)度加1
   {
    if(snake[snakeCount-1].x==foodx&&snake[snakeCount-1].y==foody)
   {
		addfood();
		snakeCount++;
		snake.unshift({x:-15,y:-15});
   }
   
   }
   //死亡函數(shù)
   function isDead()
   {
    if (snake[snakeCount-1].x>885||snake[snakeCount-1].y>585||snake[snakeCount-1].x<0||snake[snakeCount-1].y<0)
		{
        

		window.location.reload();
		}
   }
   
    document.onkeydown=function(e)
{
	keydown(e);
 
} 
window.onload = function()//調(diào)用函數(shù)
{ 
	start();
	setInterval(move,150);
	drawtable();
	
	
 
}
</script>
</body>
</html>

nodetest.js文件添加如下js代碼,以下代碼意思是開(kāi)啟一個(gè)http服務(wù),設(shè)置監(jiān)聽(tīng)3000端口號(hào)

const http = require('http');

//加載文件模塊
const fs = require("fs");


const hostname = '127.0.0.1';
//端口
const port = 3000;

const server = http.createServer((req, res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/html');
  
  fs.readFile('./game.html', (err, data) => {
    if (err) throw err;
    console.log(data.toString);
    res.end(data);
  });
  
  
 
});

server.listen(port, hostname, () => {
  console.log(`Server running at http://${hostname}:${port}/`);
});

3. 訪問(wèn)node.js 服務(wù)

當(dāng)我們編寫(xiě)好相關(guān)代碼后,我們開(kāi)始啟動(dòng)服務(wù).在vscode控制臺(tái)輸入命令【注意需要進(jìn)入到相應(yīng)的文件目錄下執(zhí)行命令】

node .\nodetest.js

輕松搭建遠(yuǎn)程N(yùn)ode.js服務(wù)端,讓你的應(yīng)用在公共網(wǎng)絡(luò)中暢行無(wú)阻!,網(wǎng)絡(luò)知識(shí),網(wǎng)絡(luò)穿透,前端,node.js,網(wǎng)絡(luò),原力計(jì)劃

有正常返回提示服務(wù)在本地3000端口下,我們打開(kāi)瀏覽器,訪問(wèn)http://127.0.0.1:3000/,出現(xiàn)貪吃蛇界面表示成功【游戲控制:鍵盤(pán)上下左右鍵】

輕松搭建遠(yuǎn)程N(yùn)ode.js服務(wù)端,讓你的應(yīng)用在公共網(wǎng)絡(luò)中暢行無(wú)阻!,網(wǎng)絡(luò)知識(shí),網(wǎng)絡(luò)穿透,前端,node.js,網(wǎng)絡(luò),原力計(jì)劃

4.內(nèi)網(wǎng)穿透

這里我們使用cpolar來(lái)進(jìn)行內(nèi)網(wǎng)穿透,支持http/https/tcp協(xié)議,不限制流量,無(wú)需公網(wǎng)IP,也不用設(shè)置路由器,使用簡(jiǎn)單。

4.1 安裝配置cpolar內(nèi)網(wǎng)穿透

cpolar官網(wǎng):https://www.cpolar.com/

訪問(wèn)cpolar官網(wǎng),注冊(cè)一個(gè)賬號(hào),然后下載并安裝客戶(hù)端,具體安裝教程可以參考官網(wǎng)文檔教程。

  • windows系統(tǒng):在官網(wǎng)下載安裝包后,雙擊安裝包一路默認(rèn)安裝即可。
  • linux系統(tǒng):支持一鍵自動(dòng)安裝腳本,詳細(xì)請(qǐng)參考官網(wǎng)文檔——入門(mén)指南

輕松搭建遠(yuǎn)程N(yùn)ode.js服務(wù)端,讓你的應(yīng)用在公共網(wǎng)絡(luò)中暢行無(wú)阻!,網(wǎng)絡(luò)知識(shí),網(wǎng)絡(luò)穿透,前端,node.js,網(wǎng)絡(luò),原力計(jì)劃

4.2 創(chuàng)建隧道映射本地端口

cpolar安裝成功后,在瀏覽器上訪問(wèn)本地9200端口http://localhost:9200,使用cpolar郵箱賬號(hào)登錄。

輕松搭建遠(yuǎn)程N(yùn)ode.js服務(wù)端,讓你的應(yīng)用在公共網(wǎng)絡(luò)中暢行無(wú)阻!,網(wǎng)絡(luò)知識(shí),網(wǎng)絡(luò)穿透,前端,node.js,網(wǎng)絡(luò),原力計(jì)劃

點(diǎn)擊左側(cè)儀表盤(pán)的隧道管理——?jiǎng)?chuàng)建隧道,創(chuàng)建一個(gè)指向本地3000端口的http隧道

  • 隧道名稱(chēng):可自定義命名,注意不要與已有的隧道名稱(chēng)重復(fù)
  • 協(xié)議:選擇http
  • 本地地址:3000
  • 域名類(lèi)型:免費(fèi)選擇隨機(jī)域名
  • 地區(qū):選擇China vip

點(diǎn)擊創(chuàng)建

輕松搭建遠(yuǎn)程N(yùn)ode.js服務(wù)端,讓你的應(yīng)用在公共網(wǎng)絡(luò)中暢行無(wú)阻!,網(wǎng)絡(luò)知識(shí),網(wǎng)絡(luò)穿透,前端,node.js,網(wǎng)絡(luò),原力計(jì)劃

隧道創(chuàng)建成功后,點(diǎn)擊左側(cè)的狀態(tài)——在線隧道列表,查看所生成的公網(wǎng)地址,然后復(fù)制地址

輕松搭建遠(yuǎn)程N(yùn)ode.js服務(wù)端,讓你的應(yīng)用在公共網(wǎng)絡(luò)中暢行無(wú)阻!,網(wǎng)絡(luò)知識(shí),網(wǎng)絡(luò)穿透,前端,node.js,網(wǎng)絡(luò),原力計(jì)劃

打開(kāi)瀏覽器器,我們使用上面公網(wǎng)地址進(jìn)行訪問(wèn),至此,我們成功將本地·node.js 服務(wù)發(fā)布到了公網(wǎng)地址

輕松搭建遠(yuǎn)程N(yùn)ode.js服務(wù)端,讓你的應(yīng)用在公共網(wǎng)絡(luò)中暢行無(wú)阻!,網(wǎng)絡(luò)知識(shí),網(wǎng)絡(luò)穿透,前端,node.js,網(wǎng)絡(luò),原力計(jì)劃

5.固定公網(wǎng)地址

由于以上使用cpolar所創(chuàng)建的隧道使用的是隨機(jī)公網(wǎng)地址,24小時(shí)內(nèi)會(huì)隨機(jī)變化,不利于長(zhǎng)期遠(yuǎn)程訪問(wèn)。因此我們可以為其配置二級(jí)子域名,該地址為固定地址,不會(huì)隨機(jī)變化。

  • 保留一個(gè)二級(jí)子域名

登錄cpolar官網(wǎng),點(diǎn)擊左側(cè)的預(yù)留,選擇保留二級(jí)子域名,設(shè)置一個(gè)二級(jí)子域名名稱(chēng),點(diǎn)擊保留,保留成功后復(fù)制保留的二級(jí)子域名名稱(chēng)

輕松搭建遠(yuǎn)程N(yùn)ode.js服務(wù)端,讓你的應(yīng)用在公共網(wǎng)絡(luò)中暢行無(wú)阻!,網(wǎng)絡(luò)知識(shí),網(wǎng)絡(luò)穿透,前端,node.js,網(wǎng)絡(luò),原力計(jì)劃

保留成功后復(fù)制保留的二級(jí)子域名地址

輕松搭建遠(yuǎn)程N(yùn)ode.js服務(wù)端,讓你的應(yīng)用在公共網(wǎng)絡(luò)中暢行無(wú)阻!,網(wǎng)絡(luò)知識(shí),網(wǎng)絡(luò)穿透,前端,node.js,網(wǎng)絡(luò),原力計(jì)劃

  • 配置二級(jí)子域名

訪問(wèn)http://127.0.0.1:9200/,登錄cpolar web UI管理界面,點(diǎn)擊左側(cè)儀表盤(pán)的隧道管理——隧道列表,找到所要配置的3000隧道,點(diǎn)擊右側(cè)的編輯

輕松搭建遠(yuǎn)程N(yùn)ode.js服務(wù)端,讓你的應(yīng)用在公共網(wǎng)絡(luò)中暢行無(wú)阻!,網(wǎng)絡(luò)知識(shí),網(wǎng)絡(luò)穿透,前端,node.js,網(wǎng)絡(luò),原力計(jì)劃

修改隧道信息,將保留成功的二級(jí)子域名配置到隧道中

  • 域名類(lèi)型:選擇二級(jí)子域名
  • Sub Domain:填寫(xiě)保留成功的二級(jí)子域名

點(diǎn)擊更新

輕松搭建遠(yuǎn)程N(yùn)ode.js服務(wù)端,讓你的應(yīng)用在公共網(wǎng)絡(luò)中暢行無(wú)阻!,網(wǎng)絡(luò)知識(shí),網(wǎng)絡(luò)穿透,前端,node.js,網(wǎng)絡(luò),原力計(jì)劃

更新完成后,打開(kāi)在線隧道列表,此時(shí)可以看到公網(wǎng)地址已經(jīng)發(fā)生變化,地址名稱(chēng)也變成了保留過(guò)的二級(jí)子域名名稱(chēng),將其復(fù)制下來(lái)

輕松搭建遠(yuǎn)程N(yùn)ode.js服務(wù)端,讓你的應(yīng)用在公共網(wǎng)絡(luò)中暢行無(wú)阻!,網(wǎng)絡(luò)知識(shí),網(wǎng)絡(luò)穿透,前端,node.js,網(wǎng)絡(luò),原力計(jì)劃

然后使用固定http地址打開(kāi)瀏覽器訪問(wèn)

輕松搭建遠(yuǎn)程N(yùn)ode.js服務(wù)端,讓你的應(yīng)用在公共網(wǎng)絡(luò)中暢行無(wú)阻!,網(wǎng)絡(luò)知識(shí),網(wǎng)絡(luò)穿透,前端,node.js,網(wǎng)絡(luò),原力計(jì)劃
訪問(wèn)成功,現(xiàn)在這個(gè)公網(wǎng)地址是固定的了,不會(huì)隨機(jī)變化。成功通過(guò)cpolar內(nèi)網(wǎng)穿透,實(shí)現(xiàn)在外遠(yuǎn)程訪問(wèn)nodejs服務(wù),無(wú)需公網(wǎng)IP ,也不用設(shè)置路由器。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-667809.html

到了這里,關(guān)于輕松搭建遠(yuǎn)程N(yùn)ode.js服務(wù)端,讓你的應(yīng)用在公共網(wǎng)絡(luò)中暢行無(wú)阻!的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Spring Boot進(jìn)階(51):如何在Spring Boot項(xiàng)目中輕松集成HTML:讓你的應(yīng)用更具吸引力!

    Spring Boot進(jìn)階(51):如何在Spring Boot項(xiàng)目中輕松集成HTML:讓你的應(yīng)用更具吸引力!

    ? ? ? ? 我們都知道,Spring Boot作為一款廣泛應(yīng)用于企業(yè)級(jí)的開(kāi)發(fā)框架,其通過(guò)簡(jiǎn)化開(kāi)發(fā)過(guò)程、提高開(kāi)發(fā)效率贏得了眾多開(kāi)發(fā)者的青睞。在實(shí)際項(xiàng)目開(kāi)發(fā)中,集成 HTML作為 Web 應(yīng)用程序中的一個(gè)基本需求,也是現(xiàn)在極其常見(jiàn)的場(chǎng)景之一。在此,我將為大家分享一下Spring Boot如何

    2024年02月11日
    瀏覽(24)
  • Spring Boot進(jìn)階(58):輕松搞定數(shù)據(jù)存儲(chǔ)!Spring Boot與PostgreSQL完美集成,讓你的應(yīng)用更穩(wěn)定更高效!

    Spring Boot進(jìn)階(58):輕松搞定數(shù)據(jù)存儲(chǔ)!Spring Boot與PostgreSQL完美集成,讓你的應(yīng)用更穩(wěn)定更高效!

    ????????PostgreSQL是一種廣泛使用的開(kāi)源關(guān)系型數(shù)據(jù)庫(kù),具有可靠性高、性能優(yōu)異、擁有豐富的數(shù)據(jù)類(lèi)型和擴(kuò)展等優(yōu)點(diǎn),越來(lái)越多的企業(yè)和開(kāi)發(fā)者開(kāi)始使用它來(lái)存儲(chǔ)和管理數(shù)據(jù)。而Spring Boot是一種快速開(kāi)發(fā)的框架,可以簡(jiǎn)化開(kāi)發(fā)過(guò)程并提高開(kāi)發(fā)效率。本文將介紹如何使用Sp

    2024年02月10日
    瀏覽(23)
  • 這個(gè)開(kāi)源項(xiàng)目,讓你輕松搭建屬于自己的云存儲(chǔ)服務(wù)!

    大家好,我是 Java陳序員 。 我們?cè)诠ぷ魃钪?,難免會(huì)有一些學(xué)習(xí)資料、文檔,或者是生活中記錄下來(lái)的精彩瞬間。大家是如何保存這些文件的呢? 可能有些文件僅僅是保存在本地的終端中,手機(jī)、電腦等。如果本地存儲(chǔ)滿了,會(huì)考慮將文件上傳到云盤(pán)中。 如果你有自己的

    2024年02月03日
    瀏覽(17)
  • 15分鐘搭建無(wú)門(mén)檻服務(wù)器性能監(jiān)控系統(tǒng),讓你的服務(wù)器運(yùn)行如飛!

    15分鐘搭建無(wú)門(mén)檻服務(wù)器性能監(jiān)控系統(tǒng),讓你的服務(wù)器運(yùn)行如飛!

    服務(wù)器監(jiān)控是每個(gè)互聯(lián)網(wǎng)廠商都重視并且想要盡可能做好的事情,從數(shù)據(jù)收集、數(shù)據(jù)處理、數(shù)據(jù)可視化最終再到實(shí)時(shí)監(jiān)控告警,這一系列復(fù)雜的流程可能耗費(fèi)企業(yè)大量的人力和時(shí)間,以至于某些時(shí)候因?yàn)槠鋸?fù)雜性高無(wú)法達(dá)到預(yù)期的監(jiān)控效果。而當(dāng)事故發(fā)生時(shí)才發(fā)現(xiàn),由于監(jiān)控

    2024年01月22日
    瀏覽(26)
  • Vue實(shí)現(xiàn)二維碼,讓你的數(shù)據(jù)輕松傳遞

    在我們生活中,二維碼的應(yīng)用越來(lái)越廣泛,特別是在移動(dòng)互聯(lián)網(wǎng)的時(shí)代,二維碼成為了快速傳達(dá)信息的一種利器。在這篇文章中,我們將會(huì)介紹如何在Vue框架下,實(shí)現(xiàn)一個(gè)具備掃描和查看數(shù)據(jù)的二維碼。 在這一篇文章中,我們將會(huì)使用到以下兩個(gè)庫(kù): qrcode.js :一個(gè)簡(jiǎn)單易用

    2024年02月05日
    瀏覽(21)
  • 30個(gè)前端和設(shè)計(jì)必備網(wǎng)站,讓你的工作更輕松!

    30個(gè)前端和設(shè)計(jì)必備網(wǎng)站,讓你的工作更輕松!

    當(dāng)今互聯(lián)網(wǎng)時(shí)代,前端開(kāi)發(fā)和設(shè)計(jì)領(lǐng)域變化迅速,每天都會(huì)有新技術(shù)和工具不斷涌現(xiàn)。無(wú)論你是一名前端工程師還是一名設(shè)計(jì)師,都需要不斷了解最新的前沿技術(shù)和工具。下面是30個(gè)前端和設(shè)計(jì)經(jīng)常會(huì)用到的網(wǎng)站,以及每個(gè)網(wǎng)站的功能介紹。 鏈接:https://www.w3schools.com/ W3Scho

    2024年01月16日
    瀏覽(93)
  • Node.js安裝與配置指南:輕松啟航您的JavaScript服務(wù)器之旅

    Node.js作為一個(gè)基于Chrome V8引擎的JavaScript運(yùn)行時(shí)環(huán)境,已經(jīng)成為現(xiàn)代web開(kāi)發(fā)中不可或缺的重要工具之一。它的出現(xiàn)極大地?cái)U(kuò)展了JavaScript的應(yīng)用范圍,使得開(kāi)發(fā)者可以利用同一種語(yǔ)言來(lái)編寫(xiě)前端和后端的代碼,從而實(shí)現(xiàn)全棧開(kāi)發(fā)。Node.js具有非阻塞I/O、事件驅(qū)動(dòng)的特性,使得它能

    2024年04月10日
    瀏覽(25)
  • 分享 7 個(gè)有用的 Flutter 庫(kù),讓你的開(kāi)發(fā)生活更輕松

    分享 7 個(gè)有用的 Flutter 庫(kù),讓你的開(kāi)發(fā)生活更輕松

    讓你的 Flutter 開(kāi)發(fā)更高效 為什么要編寫(xiě)自定義功能,當(dāng)你可以使用庫(kù)呢?庫(kù)是開(kāi)發(fā)者最好的朋友和救命稻草。在我看來(lái),一個(gè)好的項(xiàng)目應(yīng)該充分利用一些最好的可用庫(kù)。 本文是有關(guān) Flutter 中很棒的庫(kù)系列文章的一部分,我總結(jié)了7個(gè) Flutter 庫(kù),這些庫(kù)將有助于您在開(kāi)發(fā)過(guò)程中

    2024年02月17日
    瀏覽(18)
  • 多麗特膳:個(gè)性化的調(diào)減飲品,讓你的蛻變之路更輕松

    多麗特膳:個(gè)性化的調(diào)減飲品,讓你的蛻變之路更輕松

    不同的人有不同的體型和健康狀態(tài),在我們的生活中存在九種體質(zhì),它們分別是平和質(zhì)、氣虛質(zhì)、陽(yáng)虛質(zhì)、陰虛質(zhì)、痰濕質(zhì)、濕熱質(zhì)、血瘀質(zhì)、氣郁質(zhì)、特稟質(zhì)。體質(zhì)是指人類(lèi)個(gè)體在形態(tài)結(jié)構(gòu)和生理功能方面的相對(duì)穩(wěn)定的特征,它反映了人類(lèi)個(gè)體之間的差異。這些體質(zhì)的不同

    2024年02月05日
    瀏覽(29)
  • 9 個(gè)實(shí)用的 VSCode 擴(kuò)展插件,讓你的開(kāi)發(fā)工作更輕松

    9 個(gè)實(shí)用的 VSCode 擴(kuò)展插件,讓你的開(kāi)發(fā)工作更輕松

    這些擴(kuò)展將幫助您提高工作效率、改進(jìn)工作流程 VSCode 是幾乎所有編程語(yǔ)言中最受歡迎的 IDE 之一。它簡(jiǎn)單、強(qiáng)大,有很多很酷的特性,而且是微軟的產(chǎn)品。所以對(duì)于任何開(kāi)發(fā)人員來(lái)說(shuō),它都是一個(gè)很棒的工具。 通過(guò)安裝其市場(chǎng)上可用的各種免費(fèi)擴(kuò)展,可以自定義 VS Code 并使

    2023年04月20日
    瀏覽(34)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包