<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://wiki.integrator.com.br/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pt-br">
		<id>https://wiki.integrator.com.br/index.php?action=history&amp;feed=atom&amp;title=Exemplo_de_CRUD_no_Node.js</id>
		<title>Exemplo de CRUD no Node.js - Histórico de revisão</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.integrator.com.br/index.php?action=history&amp;feed=atom&amp;title=Exemplo_de_CRUD_no_Node.js"/>
		<link rel="alternate" type="text/html" href="https://wiki.integrator.com.br/index.php?title=Exemplo_de_CRUD_no_Node.js&amp;action=history"/>
		<updated>2026-04-15T12:31:05Z</updated>
		<subtitle>Histórico de revisões para esta página neste wiki</subtitle>
		<generator>MediaWiki 1.21.2</generator>

	<entry>
		<id>https://wiki.integrator.com.br/index.php?title=Exemplo_de_CRUD_no_Node.js&amp;diff=7996&amp;oldid=prev</id>
		<title>Integratorhost em 18h36min de 17 de julho de 2025</title>
		<link rel="alternate" type="text/html" href="https://wiki.integrator.com.br/index.php?title=Exemplo_de_CRUD_no_Node.js&amp;diff=7996&amp;oldid=prev"/>
				<updated>2025-07-17T18:36:23Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr style='vertical-align: top;'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Edição anterior&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Edição das 18h36min de 17 de julho de 2025&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Linha 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Linha 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[File:Wiki-&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;node&lt;/del&gt;-&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;next&lt;/del&gt;-&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;puppeteer&lt;/del&gt;.jpg|center| 700px||border|link=https://integrator.com.br/plano-&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;hospedagem&lt;/del&gt;-&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;php-nodejs.html&lt;/del&gt;|Planos &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Nodejs&lt;/del&gt;|]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[File:Wiki-&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;banner&lt;/ins&gt;-&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;icp&lt;/ins&gt;-&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;2025&lt;/ins&gt;.jpg|center| 700px||border|link=https://integrator.com.br/plano-&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;vps&lt;/ins&gt;-&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;icp&lt;/ins&gt;|Planos &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;VPS ICP&lt;/ins&gt;|]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Antes de começar ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Antes de começar ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Integratorhost</name></author>	</entry>

	<entry>
		<id>https://wiki.integrator.com.br/index.php?title=Exemplo_de_CRUD_no_Node.js&amp;diff=7375&amp;oldid=prev</id>
		<title>Integratorhost em 03h32min de 17 de julho de 2024</title>
		<link rel="alternate" type="text/html" href="https://wiki.integrator.com.br/index.php?title=Exemplo_de_CRUD_no_Node.js&amp;diff=7375&amp;oldid=prev"/>
				<updated>2024-07-17T03:32:30Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr style='vertical-align: top;'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Edição anterior&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Edição das 03h32min de 17 de julho de 2024&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Linha 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Linha 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[File:Wiki-node-next-puppeteer.jpg|center| 700px||border|link=https://integrator.com.br/plano-hospedagem-php-nodejs.html|Planos Nodejs|]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Antes de começar ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Antes de começar ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Integratorhost</name></author>	</entry>

	<entry>
		<id>https://wiki.integrator.com.br/index.php?title=Exemplo_de_CRUD_no_Node.js&amp;diff=7320&amp;oldid=prev</id>
		<title>Integratorhost: Integratorhost moveu a página Exemplo de CRUD no nodeJS para Exemplo de CRUD no Node.js sem deixar um redirecionamento</title>
		<link rel="alternate" type="text/html" href="https://wiki.integrator.com.br/index.php?title=Exemplo_de_CRUD_no_Node.js&amp;diff=7320&amp;oldid=prev"/>
				<updated>2024-01-18T17:19:55Z</updated>
		
		<summary type="html">&lt;p&gt;Integratorhost moveu a página &lt;a href=&quot;/index.php?title=Exemplo_de_CRUD_no_nodeJS&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Exemplo de CRUD no nodeJS (página inexistente)&quot;&gt;Exemplo de CRUD no nodeJS&lt;/a&gt; para &lt;a href=&quot;/index.php?title=Exemplo_de_CRUD_no_Node.js&quot; title=&quot;Exemplo de CRUD no Node.js&quot;&gt;Exemplo de CRUD no Node.js&lt;/a&gt; sem deixar um redirecionamento&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
			&lt;tr style='vertical-align: top;'&gt;
			&lt;td colspan='1' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Edição anterior&lt;/td&gt;
			&lt;td colspan='1' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Edição das 17h19min de 18 de janeiro de 2024&lt;/td&gt;
			&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Integratorhost</name></author>	</entry>

	<entry>
		<id>https://wiki.integrator.com.br/index.php?title=Exemplo_de_CRUD_no_Node.js&amp;diff=7165&amp;oldid=prev</id>
		<title>Integratorhost em 15h23min de 25 de setembro de 2023</title>
		<link rel="alternate" type="text/html" href="https://wiki.integrator.com.br/index.php?title=Exemplo_de_CRUD_no_Node.js&amp;diff=7165&amp;oldid=prev"/>
				<updated>2023-09-25T15:23:33Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr style='vertical-align: top;'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Edição anterior&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Edição das 15h23min de 25 de setembro de 2023&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Linha 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Linha 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[File:Nodepromo-2021.jpg|center| 700px||border|link=https://integrator.com.br/plano-hospedagem-php-nodejs|Planos promocionais|]]&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;----&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Antes de começar ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Antes de começar ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Integratorhost</name></author>	</entry>

	<entry>
		<id>https://wiki.integrator.com.br/index.php?title=Exemplo_de_CRUD_no_Node.js&amp;diff=7141&amp;oldid=prev</id>
		<title>Integratorhost em 04h03min de 9 de agosto de 2023</title>
		<link rel="alternate" type="text/html" href="https://wiki.integrator.com.br/index.php?title=Exemplo_de_CRUD_no_Node.js&amp;diff=7141&amp;oldid=prev"/>
				<updated>2023-08-09T04:03:15Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr style='vertical-align: top;'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Edição anterior&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Edição das 04h03min de 9 de agosto de 2023&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Linha 40:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Linha 40:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;O exemplo disponibilizado abaixo implementa um servidor Express que oferece uma '''API CRUD''' básica para operações de criação, leitura, atualização e exclusão de usuários em um banco de dados. Os dados são manipulados por meio de consultas SQL e as requisições do cliente são interpretadas usando o body-parser para acessar e processar as informações.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;O exemplo disponibilizado abaixo implementa um servidor Express que oferece uma '''API CRUD''' básica para operações de criação, leitura, atualização e exclusão de usuários em um banco de dados. Os dados são manipulados por meio de consultas SQL e as requisições do cliente são interpretadas usando o body-parser para acessar e processar as informações.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Para baixar o exemplo completo, [http://wiki.integrator.com.br/exemplos/exemplonodecrud.zip Clique Aqui.]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;span style=&amp;quot;color:green;&amp;quot;&amp;gt; &lt;/ins&gt;Para baixar o exemplo completo, [http://wiki.integrator.com.br/exemplos/exemplonodecrud.zip Clique Aqui.] &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;/span&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Integratorhost</name></author>	</entry>

	<entry>
		<id>https://wiki.integrator.com.br/index.php?title=Exemplo_de_CRUD_no_Node.js&amp;diff=7140&amp;oldid=prev</id>
		<title>Integratorhost: Criou página com 'Planos promocionais|   ----  == Antes de começar == As orientaç...'</title>
		<link rel="alternate" type="text/html" href="https://wiki.integrator.com.br/index.php?title=Exemplo_de_CRUD_no_Node.js&amp;diff=7140&amp;oldid=prev"/>
				<updated>2023-08-09T04:01:15Z</updated>
		
		<summary type="html">&lt;p&gt;Criou página com &amp;#039;&lt;a href=&quot;/index.php?title=Arquivo:Nodepromo-2021.jpg&quot; title=&quot;Arquivo:Nodepromo-2021.jpg&quot;&gt;File:Nodepromo-2021.jpg&lt;/a&gt;   ----  == Antes de começar == As orientaç...&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nova&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[File:Nodepromo-2021.jpg|center| 700px||border|link=https://integrator.com.br/plano-hospedagem-php-nodejs|Planos promocionais|]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Antes de começar ==&lt;br /&gt;
As orientações contidas neste tutorial exigem o painel Integrator Node.js. Caso seu plano não possua suporte ao '''Node.js''', converse com o nosso '''comercial''' sobre planos disponíveis.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Criando bancos de dados, usuário e privilégios ==&lt;br /&gt;
&lt;br /&gt;
1. Acesse o painel de controle cPanel com seu usuário e senha. Caso não saiba como acessar o painel [[O acesso ao painel de controle cPanel|Clique aqui]]&lt;br /&gt;
&lt;br /&gt;
2. Ao acessar o painel cPanel, você poderá criar seu banco de dados mysql, usuário e atribuir os privilégios corretos do usuário ao banco, veja [[Criando o Banco de Dados e Usuario Mysql no cPanel|Clicando aqui]].&lt;br /&gt;
&lt;br /&gt;
3. Utilizando o [[Acessando o phpMyAdmin|PhpMyAdmin]] você pode criar tabelas, como mostramos no exemplo do SQL abaixo que sera usado para nosso CRUD posteriormente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CREATE TABLE usuarios (&lt;br /&gt;
    id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,&lt;br /&gt;
    nome VARCHAR(255) NOT NULL,&lt;br /&gt;
    email VARCHAR(255) NOT NULL&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Explicação:'''&lt;br /&gt;
&lt;br /&gt;
Esse SQL cria uma tabela &amp;quot;'''usuarios'''&amp;quot; com três colunas: &amp;quot;'''id'''&amp;quot;, &amp;quot;'''nome'''&amp;quot; e &amp;quot;'''email'''&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
A coluna &amp;quot;id&amp;quot; é uma chave primária numérica que se autoincrementa, enquanto as colunas &amp;quot;nome&amp;quot; e &amp;quot;email&amp;quot; são strings que não podem conter valores nulos.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. Assim que tiver o banco de dados e usuario criados com as devidas permissões, faça a liberação de acesso remoto do mysql ao seu banco de dados. &lt;br /&gt;
&lt;br /&gt;
Tambem mostramos em nosso wiki estes passos ilustrados, veja [[Liberando o acesso remoto ao MySQL|Clicando aqui]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Sobre o tutorial ==&lt;br /&gt;
O exemplo disponibilizado abaixo implementa um servidor Express que oferece uma '''API CRUD''' básica para operações de criação, leitura, atualização e exclusão de usuários em um banco de dados. Os dados são manipulados por meio de consultas SQL e as requisições do cliente são interpretadas usando o body-parser para acessar e processar as informações.&lt;br /&gt;
&lt;br /&gt;
Para baixar o exemplo completo, [http://wiki.integrator.com.br/exemplos/exemplonodecrud.zip Clique Aqui.]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== O arquivo index.js ==&lt;br /&gt;
O arquivo '''index.js''' possui o código apresentado na Listagem abaixo. Veja o detalhe da porta que não é definida diretamente. Usamos a variável '''process.env.PORT''' para que o painel forneça a porta.&lt;br /&gt;
&lt;br /&gt;
Toda explicação detalhada do arquivo '''index.js''', esta descrita no exemplo completo disponível para baixar, citado mais acima. Ao abrir o arquivo '''index.js''', comentamos e explicamos cada linha apresentada do código.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
const express = require('express');&lt;br /&gt;
const bodyParser = require('body-parser');&lt;br /&gt;
const db = require('./db');&lt;br /&gt;
&lt;br /&gt;
const app = express();&lt;br /&gt;
app.use(bodyParser.json());&lt;br /&gt;
app.use(bodyParser.urlencoded({ extended: true }));&lt;br /&gt;
&lt;br /&gt;
// Create (Criação)&lt;br /&gt;
app.post('/usuario', (req, res) =&amp;gt; {&lt;br /&gt;
    const { nome, email } = req.body;&lt;br /&gt;
    const query = 'INSERT INTO usuarios (nome, email) VALUES (?, ?)';&lt;br /&gt;
    db.query(query, [nome, email], (err, results) =&amp;gt; {&lt;br /&gt;
        if(err) throw err;&lt;br /&gt;
        res.send('Usuário adicionado com sucesso!');&lt;br /&gt;
    });&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
// Read (Leitura)&lt;br /&gt;
app.get('/usuarios', (req, res) =&amp;gt; {&lt;br /&gt;
    db.query('SELECT * FROM usuarios', (err, rows) =&amp;gt; {&lt;br /&gt;
        if(err) throw err;&lt;br /&gt;
        res.json(rows);&lt;br /&gt;
    });&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
// Update (Atualização)&lt;br /&gt;
app.put('/usuario/:id', (req, res) =&amp;gt; {&lt;br /&gt;
    const { nome, email } = req.body;&lt;br /&gt;
    const query = 'UPDATE usuarios SET nome = ?, email = ? WHERE id = ?';&lt;br /&gt;
    db.query(query, [nome, email, req.params.id], (err, results) =&amp;gt; {&lt;br /&gt;
        if(err) throw err;&lt;br /&gt;
        res.send('Usuário atualizado com sucesso!');&lt;br /&gt;
    });&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
// Delete (Exclusão)&lt;br /&gt;
app.delete('/usuario/:id', (req, res) =&amp;gt; {&lt;br /&gt;
    const query = 'DELETE FROM usuarios WHERE id = ?';&lt;br /&gt;
    db.query(query, [req.params.id], (err, results) =&amp;gt; {&lt;br /&gt;
        if(err) throw err;&lt;br /&gt;
        res.send('Usuário excluído com sucesso!');&lt;br /&gt;
    });&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
const PORT = process.env.PORT //aqui será a porta que o PM2 irá colocar&lt;br /&gt;
//const PORT = 3000;&lt;br /&gt;
&lt;br /&gt;
app.listen(PORT, () =&amp;gt; {&lt;br /&gt;
    console.log(`Server is running on port ${PORT}`);&lt;br /&gt;
});&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== O arquivo db.js ==&lt;br /&gt;
O arquivo db.js é onde ficara configurado a conexão de seu banco de dados, onde deve utilizar os dados abaixo(alterando-os para os de seu banco e usuario criados no painel cPanel).&lt;br /&gt;
&lt;br /&gt;
* '''Host''': localhost&lt;br /&gt;
* '''Porta''': 3306&lt;br /&gt;
* '''Banco''': nome_do_bancodedados&lt;br /&gt;
* '''Usuário''': nome_do_usuariocriado&lt;br /&gt;
* '''Senha''': senha_do_usuariocriado&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
const mysql = require('mysql');&lt;br /&gt;
&lt;br /&gt;
const connection = mysql.createConnection({&lt;br /&gt;
    host: 'NomeDoHost',&lt;br /&gt;
    user: 'UsuárioDoMySQL',&lt;br /&gt;
    password: 'SenhaDoMySQL',&lt;br /&gt;
    database: 'NomeCompletoDoBanco'&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
connection.connect((err) =&amp;gt; {&lt;br /&gt;
    if(err) throw err;&lt;br /&gt;
    console.log('Conectado ao banco de dados!');&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
module.exports = connection;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Subindo o aplicativo e registrando no Integrator Node.js ==&lt;br /&gt;
&lt;br /&gt;
1. Para o deploy através do painel, use a aba '''Deploy''' e selecione o arquivo compactado .zip.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Em seguida, com upload feito corretamente e com sucesso, basta clicar para configurar o aplicativo no domínio/subdomínio&lt;br /&gt;
&lt;br /&gt;
3. O registro do aplicativo ocorre quando ele já foi levado ao servidor, no diretório do seu usuário. O aplicativo precisa ser registrado para que ele se torne funcional no servidor, tanto no acesso através da porta definida, como também pelo domínio.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File: 2023-08-09_00-13.png‎|Figura: Registrando o aplicativo pelo painel|thumb|600px|none|alt=Registro do aplicativo|link=]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''O nome do aplicativo''' - Ele será identificado nas configurações do usuário;&amp;lt;br&amp;gt;&lt;br /&gt;
* '''Dominio para Deploy''' - Selecione o domínio/subdomínio onde irá acessar o aplicativo; &amp;lt;br&amp;gt;&lt;br /&gt;
* '''A URL do Aplicação''' - A raiz do domínio é para manter barra '''/''' apenas. Se colocar '''/outronome''', o aplicativo só será visível quando acessar essa URI;&amp;lt;br&amp;gt;&lt;br /&gt;
* '''Nodejs do Aplicativo''' - A versão do Node.js que vai operar em seu aplicativo;&amp;lt;br&amp;gt;&lt;br /&gt;
* '''Memoria do Aplicativo''' - A memória que será definida no aplicativo;&amp;lt;br&amp;gt;&lt;br /&gt;
* '''Index do Aplicativo''' - O arquivo inicial do aplicativo Node.js;&amp;lt;br&amp;gt;&lt;br /&gt;
* '''Caminho do aplicativo''' - O caminho onde se encontra o aplicativo. Se subir pelo painel, o deploy fica no diretorio '''applications/''' do seu usuário. O nome precisa ter o diretório onde se obtém ao descompactar o aplicativo, por exemplo;&amp;lt;br&amp;gt;&lt;br /&gt;
* '''Porta do Aplicativo''' - A porta que será executado o aplicativo Node.js através do PM2;&amp;lt;br&amp;gt;&lt;br /&gt;
* '''Modo de execução''' - O modo de execução do aplicativo. Pode ser '''Desenvolvimento''' ou '''Produção'''. O modo '''Desenvolvimento''' exibe erros em caso de falhas da execução;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Instalando as dependências ==&lt;br /&gt;
1. Em '''Ação''', ainda na aba '''Aplicativos''', clique no ícone '''Terminal'''.&lt;br /&gt;
[[File: Acesso-terminal-painel-nodejs.jpg ‎|thumb|500px|none|alt=Alt text|link=]]&lt;br /&gt;
&lt;br /&gt;
2. No '''Terminal''' basta entrar no ambiente virtual para executar o npm. O comando npm é reconhecido assim que entra na pasta de seu aplicativo, ou seja, acesse o diretório onde esta localizado seu aplicativo, como por exemplo:&lt;br /&gt;
&lt;br /&gt;
 cd applications/exemplonodecrud  - Local onde esta localizado o aplicativo que foi feito deploy&lt;br /&gt;
&lt;br /&gt;
3. Tambem pode ser acessado o ambiente virtual copiando o caminho que é informado no painel ao lado do nome do aplicativo no sinal de interrogação, como por exemplo:&lt;br /&gt;
&lt;br /&gt;
 source ~/nodevenv/exemplonodecrud/bin/activate &amp;amp;&amp;amp; cd ~/applications/exemplonodecrud&lt;br /&gt;
&lt;br /&gt;
4. Agora, execute o comando '''npm install''' que lerá seu arquivo '''package.js''' e recriará o diretório node_modules com as respectivas dependências:&lt;br /&gt;
 &lt;br /&gt;
 npm install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Iniciando o aplicativo pelo painel ==&lt;br /&gt;
Na aba '''Aplicativos''', você pode iniciar o projeto através do ícone de Start e Stop do aplicativo.&lt;br /&gt;
&lt;br /&gt;
[[File: start-stop-nodejs-javascript-express.jpg ‎|none|alt=Alt text|link=]]&lt;br /&gt;
&lt;br /&gt;
== Iniciando o aplicativo via terminal SSH ==&lt;br /&gt;
Dentro do diretório virtual do aplicativo, basta digitar o seguinte comando:&amp;lt;br&amp;gt;&lt;br /&gt;
 pm2 start app.yaml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Testando o CRUD com Postman ==&lt;br /&gt;
&lt;br /&gt;
Com o aplicativo registrado e iniciado corretamente com sucesso, temos o acesso testado e 100% funcional, no qual demonstramos em imagens abaixo:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Adicionando um usuário'''&lt;br /&gt;
&lt;br /&gt;
[[File: Usuario-adicionado-crud.png ‎|thumb|600px|none|alt=Alt text|link=]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Atualizando um usuário'''&lt;br /&gt;
&lt;br /&gt;
[[File: Usuario-atualizado-crud.png ‎|thumb|600px|none|alt=Alt text|link=]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Removendo um usuário'''&lt;br /&gt;
&lt;br /&gt;
[[File: Usuario-removido-crud.png ‎|thumb|600px|none|alt=Alt text|link=]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''PS: Lembrando que estes endereços de acesso foram utilizados para testes e acessa-los no momento não reproduz o uso do aplicativo de teste. '''&lt;br /&gt;
&lt;br /&gt;
'''Testes de acesso deve ser realizado com seu domínio e/ou subdomínio de acesso no qual registrou seu aplicativo.'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Logs ==&lt;br /&gt;
A aba de Logs apresenta saídas informativas realizadas pelo PM2, assim como erros ou informações que seu aplicativo lançar.&lt;br /&gt;
&lt;br /&gt;
[[Categoria:PAINEL INTEGRATOR NODE.JS]]&lt;br /&gt;
[[Categoria:TUTORIAIS]]&lt;/div&gt;</summary>
		<author><name>Integratorhost</name></author>	</entry>

	</feed>