Showing posts with label JavaScript. Show all posts
Showing posts with label JavaScript. Show all posts

Tuesday, June 2, 2020

Node JS use import instead of require - Babel

SyntaxError: Cannot use import statement outside a module

Si te has topado con este error es porque seguramente en tu aplicación nodeJS estabas cambiando de algo como esto... a esto... Mira:



El error se debe a que tu versión de NodeJS no soporta ES6 por eso es que debes instalar Babel para compilar y hacer que entienda el require, o sea, que transforme tu código.

Y no solo require, ya que Babel funciona en base a plugins en el que le podemos decir qué cosas es que queremos que transforme.

Instala Babel así:

npm install --save-dev @babel/core @babel/node @babel/preset-env

Configura Babel así:

Y deberás crear un archivo llamado .babelrc y con la siguiente data adentro (pueden haber otras cosas):


Ejecuta tu aplicación así:

Instala nodemon

npm install nodemon --save-dev

Crea el siguiente script dentro de tu package.json

"start": "nodemon --exec babel-node index.js"


Y voilà. 

Happy coding :)

Wednesday, June 30, 2010

Datagrid ASP.NET jscript y querystring

Muchas veces necesitamos pasar datos de una página a otra. Una manera es usando los querystring y a veces hay casos que a de esta otra página necesitamos pasar datos a los controles de la página padre. Me explico?

Tengo un formulario padre que llama a un popup, al cerrar el popup se necesita bajar ciertos datos a ciertas cajas de texto del formulario al que lo llamó.

Solucionamos esto con JavaScript.

El código JS sería...

function popupBusqueda(idForm,control1,control2,idAlmacen,idEmpresa)
{
aleatorio = (Math.round((Math.random()*99999)+1))
popUpBus =
window.open(idForm + '?formname=' + document.forms[0].name + '&Control=' +
control1 + '&Control2=' + control2 + '&idAlm=' + idAlmacen +
'&idEmp=' + idEmpresa,
aleatorio,"scrollbars=yes,status=yes,width=600,height=500,left=150,top=100");
}

Los parámetros, para este caso, son: el id del formulario,caja de texto1, caja de texto2 (a las que se bajaran los datos) , y los ids que necesitamos mandar para realizar el filtro en el popup.

Luego, utilizamos este método js en el formulario padre de la siguiente forma.
Dim strQueryString As String
strQueryString =
":popupBusqueda('fPopup.aspx','txt1','txt2', " + Me.id1.Value + ", " +
Me.id2.Value + ")"
Me.aBusqueda.HRef = "javascript:javascript" &
strQueryString

(Me.aBusqueda es un anchor.)

Después, en el formulario hijo o popup, en el load capturamos los valores del querystring:

queForm = Request.QueryString("formname")
y así se va haciendo con cada uno. Lo podemos poner en un string, en un view

En el If Not Page.IsPostBack Then, cargamos la grilla.
luego del DataBind(). Va un procedimiento que coloca un JS al linkbutton de la grilla (que es uno de tipo Select)

Public Sub recorrerGrilla()
For i As Integer = 0 To grdBusqueda.Items.Count
- 1
For j As Integer = 2 To grdBusqueda.Items(i).Cells.Count - 1

Dim
button As LinkButton = CType(grdBusqueda.Items(i).Cells(0).Controls(0),
LinkButton)

button.Attributes.Add("onclick", "window.opener.SetBuscar('"
+ queForm + "','" + queControl1 + "','" + queControl2 + "','" +
grdBusqueda.Items(i).Cells(1).Text + "','" + grdBusqueda.Items(i).Cells(2).Text
+ "'" + ");return false;")

Next
Next
End Sub

El js del SetBuscar es como sigue:

function SetBuscar(formName, idCod, idDscr,newCod,newDesc)
{
eval('var
theform = document.' + formName + ';');
popUpBus.close();
if (idCod !=
'') theform.elements[idCod].value = newCod;
if (idDscr != '')
theform.elements[idDscr].value = newDesc;
if (idCod != '')
__doPostBack(idCod,'');
}


Y fiiiiin...
haPPy Coding.