<!DOCTYPE html>
    <html lang="vi" xmlns="http://www.w3.org/1999/xhtml" prefix="og: http://ogp.me/ns#">
    <head>
<title>Cách gỡ lỗi ứng dụng Node.js trong Visual Studio Code</title>
<meta name="description" content="Cách gỡ lỗi ứng dụng Node.js trong Visual Studio Code - Savefile - Tin Tức -...">
<meta name="author" content=".: Nguoicodonvn2008.info - Cõi lòng người cô đơn :.">
<meta name="copyright" content=".: Nguoicodonvn2008.info - Cõi lòng người cô đơn :. [admin@nguoicodonvn2008.info]">
<meta name="robots" content="index, archive, follow, noodp">
<meta name="googlebot" content="index,archive,follow,noodp">
<meta name="msnbot" content="all,index,follow">
<meta name="generator" content="NukeViet v4.5">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta property="og:title" content="Cách gỡ lỗi ứng dụng Node.js trong Visual Studio Code">
<meta property="og:type" content="website">
<meta property="og:description" content="Savefile - Tin Tức - https&#x3A;&#x002F;&#x002F;www.nguoicodonvn2008.info&#x002F;vi&#x002F;news&#x002F;savefile&#x002F;kien-thuc-may-tinh&#x002F;cach-go-loi-ung-dung-node-js-trong-visual-studio-code-7018.html">
<meta property="og:site_name" content=".&#x3A; Nguoicodonvn2008.info - Cõi lòng người cô đơn &#x3A;.">
<meta property="og:url" content="https://www.nguoicodonvn2008.info/vi/news/savefile/kien-thuc-may-tinh/cach-go-loi-ung-dung-node-js-trong-visual-studio-code-7018.html">
<link rel="shortcut icon" href="https://nguoicodonvn2008.info/favicon.ico">
<link rel="canonical" href="https://www.nguoicodonvn2008.info/vi/news/savefile/kien-thuc-may-tinh/cach-go-loi-ung-dung-node-js-trong-visual-studio-code-7018.html">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/" title="Tin Tức" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/karaoke-dual/" title="Tin Tức - Karaoke Dual" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/nhac-tre/" title="Tin Tức - Nhạc trẻ" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/tru-tinh/" title="Tin Tức - Trữ tình" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/nuoc-ngoai/" title="Tin Tức - Nước ngoài" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/remix/" title="Tin Tức - Remix" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/tam-su-tinh-yeu/" title="Tin Tức - Tâm sự tình yêu" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/tho-suu-tam/" title="Tin Tức - Thơ sưu tầm" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/cuoc-song/" title="Tin Tức - Cuộc sống" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/phan-mem/" title="Tin Tức - Phần mềm" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/kien-thuc-may-tinh/" title="Tin Tức - Kiến thức máy tính" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/hoc-tap/" title="Tin Tức - Học tập" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/tai-lieu/" title="Tin Tức - Tài liệu" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/de-thi/" title="Tin Tức - Đề thi" type="application/rss+xml">
<link rel="preload" as="style" href="https://nguoicodonvn2008.info/assets/css/font-awesome.min.css" type="text/css">
<link rel="preload" as="style" href="https://nguoicodonvn2008.info/themes/default/css/bootstrap.non-responsive.css" type="text/css">
<link rel="preload" as="style" href="https://nguoicodonvn2008.info/themes/default/css/style.css" type="text/css">
<link rel="preload" as="style" href="https://nguoicodonvn2008.info/themes/default/css/style.non-responsive.css" type="text/css">
<link rel="preload" as="style" href="https://nguoicodonvn2008.info/themes/default/css/news.css" type="text/css">
<link rel="preload" as="style" href="https://nguoicodonvn2008.info/themes/default/css/custom.css" type="text/css">
<link rel="preload" as="script" href="https://nguoicodonvn2008.info/assets/js/jquery/jquery.min.js" type="text/javascript">
<link rel="preload" as="script" href="https://nguoicodonvn2008.info/assets/js/language/vi.js" type="text/javascript">
<link rel="preload" as="script" href="https://nguoicodonvn2008.info/assets/js/DOMPurify/purify3.js" type="text/javascript">
<link rel="preload" as="script" href="https://nguoicodonvn2008.info/assets/js/global.js" type="text/javascript">
<link rel="preload" as="script" href="https://nguoicodonvn2008.info/assets/js/site.js" type="text/javascript">
<link rel="preload" as="script" href="https://nguoicodonvn2008.info/themes/default/js/news.js" type="text/javascript">
<link rel="preload" as="script" href="https://nguoicodonvn2008.info/themes/default/js/main.js" type="text/javascript">
<link rel="preload" as="script" href="https://nguoicodonvn2008.info/themes/default/js/custom.js" type="text/javascript">
<link rel="preload" as="script" href="https://nguoicodonvn2008.info/themes/default/js/bootstrap.min.js" type="text/javascript">
<link rel="stylesheet" href="https://nguoicodonvn2008.info/assets/css/font-awesome.min.css">
<link rel="stylesheet" href="https://nguoicodonvn2008.info/themes/default/css/bootstrap.non-responsive.css">
<link rel="stylesheet" href="https://nguoicodonvn2008.info/themes/default/css/style.css">
<link rel="stylesheet" href="https://nguoicodonvn2008.info/themes/default/css/style.non-responsive.css">
<link rel="StyleSheet" href="https://nguoicodonvn2008.info/themes/default/css/news.css">
<link rel="stylesheet" href="https://nguoicodonvn2008.info/themes/default/css/custom.css">
<style type="text/css">
	body{background: #fff;}
</style>
    </head>
    <body>
<div id="print">
	<div id="hd_print">
		<h2 class="pull-left">.&#x3A; Nguoicodonvn2008.info - Cõi lòng người cô đơn &#x3A;.</h2>
		<p class="pull-right"><a title=".&#x3A; Nguoicodonvn2008.info - Cõi lòng người cô đơn &#x3A;." href="https://nguoicodonvn2008.info/">https://nguoicodonvn2008.info</a></p>
	</div>
	<div class="clear"></div>
	<hr />
	<div id="content">
		<h1>Cách gỡ lỗi ứng dụng Node.js trong Visual Studio Code</h1>
		<ul class="list-inline">
			<li>Thứ bảy - 22/04/2023 00:14</li>
			<li class="hidden-print txtrequired"><em class="fa fa-print">&nbsp;</em><a title="In ra" href="javascript:;" onclick="window.print()">In ra</a></li>
			<li class="hidden-print txtrequired"><em class="fa fa-power-off">&nbsp;</em><a title="Đóng cửa sổ này" href="javascript:;" onclick="window.close()">Đóng cửa sổ này</a></li>
		</ul>
		<div class="clear"></div>
		<div id="hometext">
		</div>
				<div class="imghome">
			<img alt="Cách gỡ lỗi ứng dụng Node.js trong Visual Studio Code" src="https://st.quantrimang.com/photos/image/2023/04/22/cach-go-loi-app-nodejs-5.jpg" width="460" class="img-thumbnail" />
		</div>
		<div class="clear"></div>
		<div id="bodytext" class="clearfix">
			<p style="text-align: justify;">Bạn không cần một công cụ gỡ lỗi bên ngoài. Bạn có thể&nbsp;<strong>gỡ lỗi ứng dụng Node.js&nbsp;</strong>ngay trong trình chỉnh sửa VS Code bằng công cụ có sẵn.</p>

<p style="text-align: justify;"><img alt="Ứng dụng Node.js" data-i="0" data-src="https://st.quantrimang.com/photos/image/2023/04/22/Nodejs-vs-code-7.jpg" data-was-processed="true" height="340" src="https://st.quantrimang.com/photos/image/2023/04/22/Nodejs-vs-code-7.jpg" width="650" /></p>

<p style="text-align: justify;">Gỡ lỗi ứng dụng Node.js trong Visual Studio Code rất đơn giản. Trình chỉnh sửa VS Code tích hợp sẵn tính năng gỡ lỗi bất kỳ app nhắm mục tiêu thời gian chạy Node.js. Điều đó có nghĩa rằng bạn có thể gỡ lỗi JavaScript hoặc bất kỳ ngôn ngữ được biên dịch khác (ví dụ: TypeScript).</p>

<p style="text-align: justify;">Bài viết này sẽ hướng dẫn bạn từng bước gỡ lỗi ứng dụng Node.js trong VS Code. Bạn sẽ biết cách bắt đầu một phiên gỡ lỗi, chèn các điểm ngắt, đính kèm một quy trình bên ngoài và gỡ lỗi code TypeScript bằng bản đồ nguồn.</p>

<h2 style="text-align: justify;">Chuẩn bị</h2>

<p style="text-align: justify;">Trước khi bắt đầu, cài đặt Node.js và VS Code trên máy cục bộ. Phiên bản mới nhất của Node.js sẵn có trên web chính thức của hãng. Tương tự, đối với Visual Studio Code, tải phiên bản mới nhất từ web VS Code. Bạn có thể tham khảo Cách cài đặt Visual Studio Code trên Windows 10 ở Quantrimang.com.</p>

<p style="text-align: justify;">Bạn cũng cần một dự án Node.js. Bạn có thể tạo một ứng dụng Node.js đơn giản ngay từ đầu hoặc dùng app hiện có.</p>

<h2 style="text-align: justify;">Quá trình gỡ lỗi trong VS Code</h2>

<p style="text-align: justify;">Bắt đầu gỡ lỗi trong trình chỉnh sửa VS Code khá đơn giản. Mở file với VS Code và click icon&nbsp;<strong>Run and Debug&nbsp;</strong>trong sidebar (hoặc nhấn&nbsp;<strong>Ctrl + Shift + D</strong>&nbsp;trên bàn phím). Tiếp theo, click nút&nbsp;<strong>Run and Debug</strong>&nbsp;để bắt đầu quá trình này.</p>

<p style="text-align: justify;">Mặc định, Node.js sẽ cố gắng tìm ra môi trường gỡ lỗi của dự án. Thế nhưng nếu phát hiện tự động không thành công, nó nhắc bạn chọn môi trường phù hợp. Ở hướng dẫn này, môi trường là Node.js.</p>

<p style="text-align: justify;"><img alt="Chạy và gỡ lỗi chương trình" data-i="1" data-src="https://st.quantrimang.com/photos/image/2023/04/22/cach-go-loi-app-nodejs-1.jpg" data-was-processed="true" height="317" src="https://st.quantrimang.com/photos/image/2023/04/22/cach-go-loi-app-nodejs-1.jpg" width="650" /></p>

<p style="text-align: justify;">Sau khi đã chọn môi trường, VS Code kích hoạt trình gỡ lỗi và đính kèm nó vào quá trình này. Bạn có thể thấy kết quả trong&nbsp;<strong>DEBUG CONSOLE</strong>. Dùng thanh công cụ gỡ lỗi ở phía trên cùng, bạn có thể lặp code, tạm dừng thực thi hoặc kết thúc phiên làm việc.</p>

<p style="text-align: justify;">Bạn cũng có tùy chọn tạo file cấu hình. File&nbsp;<strong>launch.json</strong>&nbsp;cho phép bạn cấu hình và thiết lập chi tiết gỡ lỗi. Nếu tập lệnh cần một đối số, hãy cung cấp các đối số này trong tệp launch.json. Nhiều tùy chọn có thể được đặt trên mỗi cấu hình:</p>

<pre id="pre0">
<code>{ 
 &quot;version&quot;: &quot;0.2.0&quot;, 
 &quot;configurations&quot;: &#91; 
   { &quot;type&quot;: &quot;node&quot;, 
     &quot;request&quot;: &quot;launch&quot;, 
     &quot;name&quot;: &quot;Launch Program&quot;, 
     &quot;skipFiles&quot;: &#91; &quot;&lt;node_internals&gt;/**&quot; &#93;, 
     &quot;program&quot;: &quot;${workspaceFolder}\\index.js&quot; 
   } 
 &#93;
}</code></pre>

<p style="text-align: justify;">Bạn cũng sẽ thấy 5 bảng ở bên tay trái của trình chỉnh sửa, bao gồm:&nbsp;<strong>VARIABLES, WATCH, CALL STACK, LOADED SCRIPTS, và BREAKPOINTS</strong>:</p>

<p style="text-align: justify;"><img alt="5 bảng trong trình chỉnh sửa code" data-i="2" data-src="https://st.quantrimang.com/photos/image/2023/04/22/cach-go-loi-app-nodejs-2.jpg" data-was-processed="true" height="300" src="https://st.quantrimang.com/photos/image/2023/04/22/cach-go-loi-app-nodejs-2.jpg" width="650" /></p>

<p style="text-align: justify;">Khi hoàn tất thiết lập cấu hình, chọn và chạy chương trình qua menu cấu hình.</p>

<h2 style="text-align: justify;">Đính kèm một quá trình bên ngoài</h2>

<p style="text-align: justify;">Phương thức khác để thiết lập một phiên gỡ lỗi Node.js là đính kèm một quá trình bên ngoài. Bắt đầu chương trình bằng lệnh sau:</p>

<pre id="pre1">
<code>node --inspect index.js</code></pre>

<p style="text-align: justify;">Chèn flag&nbsp;<strong>-brk</strong>&nbsp;sau<strong>&nbsp;--inspect</strong>&nbsp;nếu muốn đính kèm nó trước khi chương trình này bắt đầu chạy.</p>

<p style="text-align: justify;">Tiếp theo, mở chọn quá trình này trong VS Code. Điều này liệt kê toàn bộ quá trình có sẵn trong môi trường Node.js. Để mở bộ chọn, nhấn&nbsp;<strong>Ctrl + Shift + P</strong>&nbsp;và tìm lệnh&nbsp;<strong>Debug: Attach to Node.js</strong>.</p>

<p style="text-align: justify;"><img alt="Bắt đầu quá trình gỡ lỗi" data-i="3" data-src="https://st.quantrimang.com/photos/image/2023/04/22/cach-go-loi-app-nodejs-3.jpg" data-was-processed="true" height="270" src="https://st.quantrimang.com/photos/image/2023/04/22/cach-go-loi-app-nodejs-3.jpg" width="650" /></p>

<p style="text-align: justify;">Click lệnh này và đưa ra lựa chọn phù hợp để bắt đầu quá trình gỡ lỗi.</p>

<h2 style="text-align: justify;">Tạo breakpoint</h2>

<p style="text-align: justify;">Nếu muốn tạm dừng ở các điểm cụ thể trong chương trình để kiểm tra code, hãy đặt breakpoint ở đó. Bạn có thể đặt breakpoint ở hầu hết mọi nơi trong code. Điều này bao gồm khai báo biến, biểu thức và bình luận. Nhưng bạn không thể đặt điểm dừng trong khai báo hàm.</p>

<p style="text-align: justify;">Tạo một breakpoint khá đơn giản. Khi di chuyển con chuột sang bên trái của các số dòng, một hình tròn màu đỏ hiện trên từng dòng. Xác định số dòng trong code tại nơi bạn muốn chèn breakpoint. Sau đó, click vào dòng đó để thêm breakpoint:</p>

<p style="text-align: justify;"><img alt="Bảng Breakpoint" data-i="4" data-src="https://st.quantrimang.com/photos/image/2023/04/22/cach-go-loi-app-nodejs-4.jpg" data-was-processed="true" height="291" src="https://st.quantrimang.com/photos/image/2023/04/22/cach-go-loi-app-nodejs-4.jpg" width="650" /></p>

<p style="text-align: justify;">Trong&nbsp;<strong>BREAKPOINTS</strong>, bạn sẽ tìm thấy tất cả breakpoint được kích hoạt trong dự án. Đây là nơi bạn sẽ quản lý, chỉnh sửa, và tắt các breakpoint. Bạn cũng có thể tạm dừng mã khi chạy một ngoại lệ hay ngoại lệ chưa được phát hiện. Điều này cho phép bạn kiểm tra vấn đề trước khi thoát khỏi quy trình.</p>

<p style="text-align: justify;">Hãy xem các điểm breakpoint trong hành động. Click icon<strong>&nbsp;Launch&nbsp;</strong>để bắt đầu phiên gỡ lỗi. Chương trình này sẽ tạm dừng ở breakpoint đầu tiên và đưa ra giá trị để kiểm tra:</p>

<p style="text-align: justify;"><img alt="Icon Launch trong VS Code" data-i="5" data-src="https://st.quantrimang.com/photos/image/2023/04/22/cach-go-loi-app-nodejs-5.jpg" data-was-processed="true" height="311" src="https://st.quantrimang.com/photos/image/2023/04/22/cach-go-loi-app-nodejs-5.jpg" width="650" /></p>

<p style="text-align: justify;">Bạn có thể click icon&nbsp;<strong>Continue</strong>&nbsp;(hoặc nhấn<strong>&nbsp;F5</strong>) để chuyển chương trình này sang breakpoitn tiếp theo. Điều này sẽ diễn ra liên tục cho tới khi bạn tới điểm kết thúc chương trình.</p>

<h2 style="text-align: justify;">Gỡ lỗi TypeScript với các bản đồ nguồn</h2>

<p style="text-align: justify;">Vì Typescript ngày càng trở nên phổ biến, số lượng các dự án Node.js được viết trong TypeScript chắc chắn sẽ tăng lên. Thật may, bạn cũng có thể gỡ lỗi dự án dựa trên TypeScript bằng VS Code.</p>

<p style="text-align: justify;">Đầu tiên, tạo file&nbsp;<strong>tsconfig.json&nbsp;</strong>trong thư mục gốc của dự án và bật bản đồ nguồn:</p>

<pre id="pre2">
<code>{ &quot;compilerOptions&quot;: { &quot;sourceMaps&quot;: true }}</code></pre>

<p style="text-align: justify;">Tiếp theo, đính kèm quá trình chạy và đặt breakpoint trong file TypeScript. Visual Studio Code sẽ tìm thấy bản đồ nguồn và dùng chúng.</p>

<p style="text-align: justify;">Bạn có thể thông báo rõ ràng cho VS Code nơi tìm thấy bản đồ nguồn. Để làm việc này, thêm thuộc tính outFiles trong file cấu hình khởi chạy và trỏ nó tới vị trí chính xác của bản đồ nguồn:</p>

<pre id="pre3">
<code>{ 
 &quot;version&quot;: &quot;0.2.0&quot;, 
 &quot;configurations&quot;: &#91; { 
   &quot;type&quot;: &quot;node&quot;, 
   &quot;request&quot;: &quot;launch&quot;, 
   &quot;name&quot;: &quot;Launch Program&quot;, 
   &quot;skipFiles&quot;: &#91; &quot;&lt;node_internals&gt;/**&quot; &#93;, 
   &quot;program&quot;: &quot;${workspaceFolder}\\index.js&quot;, 
   &quot;outFiles&quot;: &quot;${workspaceFolder}\\index.js&quot;, 
   } 
 &#93;
}</code></pre>

<p style="text-align: justify;">Nếu đang dùng&nbsp;<strong>ts-node</strong>&nbsp;để chạy dự án mà không trải qua bước xây dựng, dùng điều này thay cho file cấu hình ở trên:</p>

<pre id="pre4">
<code>{ 
 &quot;version&quot;: &quot;0.2.0&quot;, 
 &quot;configurations&quot;: &#91; { 
   &quot;type&quot;: &quot;pwa-node&quot;, 
   &quot;request&quot;: &quot;launch&quot;, 
   &quot;name&quot;: &quot;Launch Server&quot;, 
   &quot;skipFiles&quot;: &#91; &quot;&lt;node_internals&gt;/**&quot; &#93;, 
   &quot;runtimeArgs&quot;: &#91; &quot;-r&quot;, &quot;ts-node/register&quot; &#93;, 
   &quot;args&quot;: &#91; &quot;${workspaceFolder}/src/server.ts&quot; &#93; 
 }&#93;
}</code></pre>

<p style="text-align: justify;">Do không có thuộc tính chương trình, thời gian chạy args đăng ký&nbsp;<strong>ts-node&nbsp;</strong>dưới dạng trình xử lý cho file TypeScript. Đối số đầu tiên của<strong>&nbsp;args</strong>&nbsp;là file đầu vào cho chương trình này. Giờ bạn có thể bắt đầu phiên gỡ lỗi. Nếu đang lập trình bằng vanilla JavaScript hoặc framework front-end, bạn cũng có thể gỡ lỗi code JavaScript trong trình duyệt.</p>

<p style="text-align: justify;">Trên đây là&nbsp;<strong>cách gỡ lỗi ứng dụng Node.js trong Visual Studio Code</strong>. Hi vọng bài viết hữu ích với các bạn.</p>
		</div>
				<div id="author">
						<p>
				<strong>Nguồn tin:</strong>
				Quantrimang.com
			</p>
		</div>
	</div>
	<div id="footer" class="clearfix">
		<div id="url">
			<strong>URL của bản tin này: </strong><a href="https://www.nguoicodonvn2008.info/vi/news/savefile/kien-thuc-may-tinh/cach-go-loi-ung-dung-node-js-trong-visual-studio-code-7018.html" title="Cách gỡ lỗi ứng dụng Node.js trong Visual Studio Code">https://www.nguoicodonvn2008.info/vi/news/savefile/kien-thuc-may-tinh/cach-go-loi-ung-dung-node-js-trong-visual-studio-code-7018.html</a>

		</div>
		<div class="clear"></div>
		<div class="copyright">
			&copy; .&#x3A; Nguoicodonvn2008.info - Cõi lòng người cô đơn &#x3A;.
		</div>
		<div id="contact">
			<a href="mailto:admin@nguoicodonvn2008.info">admin@nguoicodonvn2008.info</a>
		</div>
	</div>
</div>
        <div id="timeoutsess" class="chromeframe">
            Bạn đã không sử dụng Site, <a onclick="timeoutsesscancel();" href="https://nguoicodonvn2008.info/#">Bấm vào đây để duy trì trạng thái đăng nhập</a>. Thời gian chờ: <span id="secField"> 60 </span> giây
        </div>
        <div id="openidResult" class="nv-alert" style="display:none"></div>
        <div id="openidBt" data-result="" data-redirect=""></div>
		</script>
		<div class="car-top">
  <span><img src="https://nguoicodonvn2008.info/themes/default/images/car.png" alt=""></span>
</div>
<script src="https://nguoicodonvn2008.info/assets/js/jquery/jquery.min.js"></script>
<script>var nv_base_siteurl="/",nv_lang_data="vi",nv_lang_interface="vi",nv_name_variable="nv",nv_fc_variable="op",nv_lang_variable="language",nv_module_name="news",nv_func_name="savefile",nv_is_user=0, nv_my_ofs=-4,nv_my_abbr="EDT",nv_cookie_prefix="nv4c_e856T",nv_check_pass_mstime=1738000,nv_area_admin=0,nv_safemode=0,theme_responsive=0,nv_recaptcha_ver=2,nv_recaptcha_sitekey="",nv_recaptcha_type="image",XSSsanitize=1;</script>
<script src="https://nguoicodonvn2008.info/assets/js/language/vi.js"></script>
<script src="https://nguoicodonvn2008.info/assets/js/DOMPurify/purify3.js"></script>
<script src="https://nguoicodonvn2008.info/assets/js/global.js"></script>
<script src="https://nguoicodonvn2008.info/assets/js/site.js"></script>
<script src="https://nguoicodonvn2008.info/themes/default/js/news.js"></script>
<script src="https://nguoicodonvn2008.info/themes/default/js/main.js"></script>
<script src="https://nguoicodonvn2008.info/themes/default/js/custom.js"></script>
<script type="application/ld+json">
        {
            "@context": "https://schema.org",
            "@type": "Organization",
            "url": "https://nguoicodonvn2008.info",
            "logo": "https://nguoicodonvn2008.info/uploads/angel.gif"
        }
        </script>
<script src="https://nguoicodonvn2008.info/themes/default/js/bootstrap.min.js"></script>
<script type="text/javascript">
var $scrolltop = $('.car-top');
$scrolltop.on('click', function () {
    $('html,body').animate({
        scrollTop: 0
    }, 800);
    $(this).addClass("car-run");
    setTimeout(function(){ $scrolltop.removeClass('car-run');}, 1000);
    return false;
});
$(window).on('scroll', function ()
{ 
    if($(window).scrollTop() >= 200)
    {
        $scrolltop.addClass("show");
        $scrolltop.addClass("car-down");
    }
    else
    {
       $scrolltop.removeClass("show");
       setTimeout(function(){ $scrolltop.removeClass('car-down');}, 300);
    }
});
</script>
</body>
</html>