﻿1
00:00:01,090 --> 00:00:02,770
‫Instructor: Entonces, lo que

2
00:00:02,770 --> 00:00:05,210
‫quería mostrarles en este último video sobre

3
00:00:05,210 --> 00:00:08,360
‫el proyecto es que en realidad podemos crear nuestro propio

4
00:00:08,360 --> 00:00:12,137
‫módulo y exportar algo de ellos como, por ejemplo, una función.

5
00:00:12,137 --> 00:00:16,710
‫Luego importe esta función a otro módulo y luego

6
00:00:16,710 --> 00:00:19,150
‫use esa función allí.

7
00:00:19,150 --> 00:00:22,653
‫Bien, y eso es lo que haremos en esta conferencia.

8
00:00:24,490 --> 00:00:26,680
‫Entonces, digamos que en realidad teníamos

9
00:00:26,680 --> 00:00:28,816
‫un montón de archivos JavaScript

10
00:00:28,816 --> 00:00:32,613
‫diferentes en los que usamos esta función de reemplazo de plantilla.

11
00:00:34,240 --> 00:00:37,710
‫Así que ahora mismo lo estamos usando aquí en index. js.

12
00:00:37,710 --> 00:00:41,240
‫Lo usamos dos veces y es por eso que tenemos una

13
00:00:41,240 --> 00:00:43,062
‫función, pero imagínense si quisiéramos

14
00:00:43,062 --> 00:00:44,960
‫usar esta función en varios archivos.

15
00:00:44,960 --> 00:00:48,930
‫Bien, entonces lo que podemos hacer es crear un nuevo

16
00:00:48,930 --> 00:00:50,790
‫módulo y exportar

17
00:00:50,790 --> 00:00:53,210
‫esa función y luego importarla aquí.

18
00:00:53,210 --> 00:00:55,330
‫Entonces, lo primero que debe

19
00:00:55,330 --> 00:00:56,900
‫saber es que

20
00:00:56,900 --> 00:01:01,420
‫en Nodejs, en realidad, cada archivo se trata como un módulo.

21
00:01:01,420 --> 00:01:06,210
‫Y entonces este index. js aquí también es

22
00:01:06,210 --> 00:01:08,780
‫un módulo, que en este caso

23
00:01:08,780 --> 00:01:11,663
‫importa otros módulos y particularmente estos tres.

24
00:01:13,610 --> 00:01:16,090
‫Creemos ahora una nueva carpeta aquí,

25
00:01:16,090 --> 00:01:17,800
‫que llamaré módulos y

26
00:01:20,120 --> 00:01:21,105
‫luego

27
00:01:21,105 --> 00:01:23,050
‫aquí crearé un archivo que

28
00:01:23,050 --> 00:01:26,707
‫será nuestro módulo llamado replaceTemplate. js.

29
00:01:31,050 --> 00:01:34,793
‫Bien, entonces tomemos nuestra función aquí.

30
00:01:37,220 --> 00:01:39,000
‫En realidad, córtelo desde

31
00:01:40,730 --> 00:01:42,863
‫aquí y simplemente péguelo aquí.

32
00:01:44,420 --> 00:01:48,560
‫Muy bien, ahora, ¿cómo exportamos realmente esta función

33
00:01:48,560 --> 00:01:50,350
‫desde este módulo?

34
00:01:50,350 --> 00:01:53,110
‫Bueno, hay diferentes formas de exportar algo

35
00:01:53,110 --> 00:01:54,166
‫desde un

36
00:01:54,166 --> 00:01:56,040
‫módulo y hablaremos en profundidad

37
00:01:56,040 --> 00:01:59,013
‫sobre todo esto en otra sección más adelante.

38
00:01:59,013 --> 00:01:59,904
‫Pero por ahora

39
00:01:59,904 --> 00:02:04,303
‫todo lo que vamos a hacer es usar module. exportar.

40
00:02:08,020 --> 00:02:09,000
‫Entonces, en

41
00:02:09,000 --> 00:02:12,950
‫cada módulo, tenemos acceso a una variable llamada módulo

42
00:02:12,950 --> 00:02:16,360
‫y allí podemos configurar la propiedad de exportación.

43
00:02:16,360 --> 00:02:20,230
‫Y que luego configuramos lo que queramos exportar.

44
00:02:20,230 --> 00:02:22,943
‫En este caso, esa es solo esta función.

45
00:02:24,130 --> 00:02:25,940
‫Así que vamos a deshacernos

46
00:02:27,660 --> 00:02:28,940
‫de este nombre

47
00:02:28,940 --> 00:02:33,940
‫y básicamente lo que vamos a asignar a esta propiedad de exportación en el

48
00:02:34,151 --> 00:02:36,423
‫módulo es simplemente esta función anónima.

49
00:02:37,700 --> 00:02:39,050
‫Dije anónimo porque

50
00:02:39,050 --> 00:02:42,110
‫ahora mismo esta función no tiene nombre.

51
00:02:42,110 --> 00:02:44,184
‫Por lo tanto, es solo

52
00:02:44,184 --> 00:02:47,867
‫una función anónima que se asignará a esta propiedad

53
00:02:47,867 --> 00:02:50,750
‫de exportación en el objeto del módulo.

54
00:02:50,750 --> 00:02:53,500
‫Nuevamente, ese es un objeto al que tenemos

55
00:02:53,500 --> 00:02:56,820
‫acceso en todos y cada uno de los módulos de Nodejs.

56
00:02:56,820 --> 00:02:58,250
‫Y nuevamente, más

57
00:02:58,250 --> 00:02:59,410
‫adelante

58
00:02:59,410 --> 00:03:02,020
‫aprenderá cómo sucede realmente entre bastidores.

59
00:03:02,020 --> 00:03:02,853
‫Pero por

60
00:03:02,853 --> 00:03:04,050
‫ahora, usémoslo y

61
00:03:04,050 --> 00:03:07,070
‫no nos preocupemos por qué funciona de esta manera.

62
00:03:07,070 --> 00:03:10,750
‫Entonces esto exporta esta función del módulo.

63
00:03:10,750 --> 00:03:14,423
‫Vayamos al índice. js e importarlo.

64
00:03:15,510 --> 00:03:19,410
‫Y las importaciones generalmente siempre ocurren en la parte superior del archivo

65
00:03:19,410 --> 00:03:21,400
‫y después de los módulos principales.

66
00:03:21,400 --> 00:03:23,100
‫Primero, tenemos los módulos

67
00:03:23,100 --> 00:03:25,462
‫centrales y luego tenemos nuestros propios módulos.

68
00:03:25,462 --> 00:03:30,462
‫Requeriremos y luego nuestro propio módulo, que es

69
00:03:30,890 --> 00:03:32,640
‫dot ...

70
00:03:32,640 --> 00:03:34,534
‫Y recuerde que en

71
00:03:34,534 --> 00:03:39,534
‫la función require, el punto en realidad significa la ubicación actual de este módulo.

72
00:03:39,725 --> 00:03:43,660
‫Así que recuerde cuando hablamos aquí sobre la variable de

73
00:03:43,660 --> 00:03:48,330
‫nombre de directorio, que suele ser la que apunta a la carpeta del módulo.

74
00:03:48,330 --> 00:03:50,860
‫Pero en este caso, en la función

75
00:03:50,860 --> 00:03:52,678
‫require, recuerde que hay una

76
00:03:52,678 --> 00:03:55,567
‫excepción en la que este punto apunta a la

77
00:03:55,567 --> 00:03:57,740
‫ubicación donde se encuentra este módulo.

78
00:03:57,740 --> 00:03:58,660
‫Y ahora

79
00:03:58,660 --> 00:04:00,960
‫mismo, esa es esta carpeta raíz aquí.

80
00:04:00,960 --> 00:04:04,410
‫Y desde aquí vamos a

81
00:04:05,660 --> 00:04:09,333
‫los módulos y luego allí tenemos replaceTemplate.

82
00:04:12,480 --> 00:04:13,313
‫Y nuevamente,

83
00:04:13,313 --> 00:04:15,220
‫al igual que con los otros módulos,

84
00:04:15,220 --> 00:04:17,193
‫no necesitamos el. js.

85
00:04:18,670 --> 00:04:22,700
‫Ahora, eso devolverá lo que exportamos aquí con

86
00:04:22,700 --> 00:04:24,929
‫module. Exportaciones.

87
00:04:24,929 --> 00:04:28,321
‫Lo que tenemos aquí, este código, esta función,

88
00:04:28,321 --> 00:04:33,321
‫es lo que se exportará desde esta llamada a la función require.

89
00:04:33,370 --> 00:04:35,620
‫Y ahora podemos guardar eso en cualquier

90
00:04:35,620 --> 00:04:37,870
‫variable y darle el nombre que queramos.

91
00:04:37,870 --> 00:04:40,460
‫Así que podríamos llamarlo X si quisiéramos

92
00:04:40,460 --> 00:04:42,850
‫o realmente lo que quisiéramos.

93
00:04:42,850 --> 00:04:45,960
‫Pero en cambio, solo le estoy dando este nombre

94
00:04:45,960 --> 00:04:47,420
‫que ya teníamos

95
00:04:47,420 --> 00:04:50,670
‫aquí para no tener que cambiar mi código aquí.

96
00:04:50,670 --> 00:04:53,770
‫Así que replaceTemplate es el nombre que quiero

97
00:04:53,770 --> 00:04:56,160
‫darle a esta variable que ahora

98
00:04:56,160 --> 00:04:58,040
‫es esta función.

99
00:04:58,040 --> 00:04:59,580
‫Y así,

100
00:04:59,580 --> 00:05:01,900
‫exportamos algo de un módulo

101
00:05:01,900 --> 00:05:04,203
‫y lo importamos a otro.

102
00:05:05,689 --> 00:05:09,941
‫Y ahora, si reiniciamos nuestro servidor,

103
00:05:09,941 --> 00:05:13,900
‫todo debería seguir funcionando.

104
00:05:13,900 --> 00:05:15,000
‫Pero en realidad no es así.

105
00:05:15,000 --> 00:05:18,300
‫Tenemos algún tipo de error aquí.

106
00:05:18,300 --> 00:05:20,920
‫Y dice que no puede encontrar el módulo.

107
00:05:20,920 --> 00:05:23,630
‫Y eso es porque fui lo suficientemente estúpido como para

108
00:05:23,630 --> 00:05:27,150
‫llamar a esta carpeta aquí módulos. js.

109
00:05:27,150 --> 00:05:28,600
‫Lo siento por eso.

110
00:05:28,600 --> 00:05:29,611
‫Este, por

111
00:05:29,611 --> 00:05:32,363
‫supuesto, solo se supone que se llama módulos.

112
00:05:34,270 --> 00:05:37,350
‫Y es por eso que no me estaba dando el autocompletado aquí.

113
00:05:37,350 --> 00:05:39,194
‫Me preguntaba por qué era eso.

114
00:05:39,194 --> 00:05:40,973
‫Y ahora lo sabemos.

115
00:05:42,100 --> 00:05:43,540
‫Si no funciona para

116
00:05:43,540 --> 00:05:45,119
‫usted, simplemente cambie el nombre

117
00:05:45,119 --> 00:05:49,413
‫aquí de esta carpeta y luego todo debería coincidir y funcionar como debería.

118
00:05:50,730 --> 00:05:55,730
‫Recarguemos y todavía reemplaza todo como debería.

119
00:05:56,160 --> 00:05:57,716
‫Lo mismo aquí, por supuesto.

120
00:05:57,716 --> 00:06:02,716
‫Y sí, ahora hemos terminado con este proyecto.

121
00:06:03,630 --> 00:06:06,380
‫Felicitaciones, bien hecho.

122
00:06:06,380 --> 00:06:09,974
‫Está bien encaminado para aprender Nodejs.

123
00:06:09,974 --> 00:06:11,500
‫Ahora, en el resto de

124
00:06:11,500 --> 00:06:12,770
‫la sección, hablaremos

125
00:06:12,770 --> 00:06:16,510
‫un poco sobre el administrador de paquetes de nodos o npm.

126
00:06:16,510 --> 00:06:18,380
‫Y seguiremos trabajando un poco

127
00:06:18,380 --> 00:06:19,770
‫con este proyecto,

128
00:06:19,770 --> 00:06:21,786
‫pero sin añadir ninguna funcionalidad.

129
00:06:21,786 --> 00:06:24,890
‫De todos modos, nos vemos en el próximo

130
00:06:24,890 --> 00:06:27,973
‫video donde comenzaremos a hablar sobre npm.

