node property handled in js? | Community
Skip to main content
Level 2
January 20, 2023
Solved

node property handled in js?

  • January 20, 2023
  • 4 replies
  • 1356 views

Hi All,

We can remove or add node properties using js ?

if it possible can explain how to do that.

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.
Best answer by Manu_Mathew_

@dh54220 you can actually use JCR/Sling APIs in sling models to manipulations to the node properties.

Resource resource = request.getResourceResolver().getResource("nodePath"); Session session = resource.adaptTo(Session.class); //Create a node that represents the root node Node root = session.getRootNode(); // Store content Node adobe = root.addNode("adobe"); Node aem = adobe.addNode("aem"); day.setProperty("message", "This is sample message"); session.save(); session.logout();

Sling API:

 

To create node-

Resource myResource = resourceResolver.getResource("/myresource"); Map<String,Object> properties = new HashMap<String,Object>(); properties.put("jcr:primaryType", "nt:unstructured"); properties.put("sling:resourceType", "myapp/components/mytype"); Resource dummy = resourceResolver.create(myResource, "dummy", properties); resourceResolver.commit();

 

To remove node-

Resource myResource = resourceResolver.getResource("/myresource"); resourceResolver.delete(myResource); resourceResolver.commit();

 

To remove properties-

Resource myResource = resourceResolver.getResource("/myresource"); ModifiableValueMap properties = myResource.adaptTo(ModifiableValueMap.class); properties.remove("title"); resourceResolver.commit();

 

4 replies

Peter_Puzanovs
Community Advisor
Community Advisor
January 20, 2023

Dear Vasu,

 

There are many ways to achieve your ask,

 

May we find out more about your use case?


Regards,

Peter

ArpitVarshney
Community Advisor
Community Advisor
January 20, 2023

Hi @dh54220 

 

CRUD operation in node can happen via sling(treat as resource)or node api which can only be done via server side.

 

You can use server side approach with above api.

 

Regards,

Arpit Varshney

Manu_Mathew_
Community Advisor
Manu_Mathew_Community AdvisorAccepted solution
Community Advisor
January 20, 2023

@dh54220 you can actually use JCR/Sling APIs in sling models to manipulations to the node properties.

Resource resource = request.getResourceResolver().getResource("nodePath"); Session session = resource.adaptTo(Session.class); //Create a node that represents the root node Node root = session.getRootNode(); // Store content Node adobe = root.addNode("adobe"); Node aem = adobe.addNode("aem"); day.setProperty("message", "This is sample message"); session.save(); session.logout();

Sling API:

 

To create node-

Resource myResource = resourceResolver.getResource("/myresource"); Map<String,Object> properties = new HashMap<String,Object>(); properties.put("jcr:primaryType", "nt:unstructured"); properties.put("sling:resourceType", "myapp/components/mytype"); Resource dummy = resourceResolver.create(myResource, "dummy", properties); resourceResolver.commit();

 

To remove node-

Resource myResource = resourceResolver.getResource("/myresource"); resourceResolver.delete(myResource); resourceResolver.commit();

 

To remove properties-

Resource myResource = resourceResolver.getResource("/myresource"); ModifiableValueMap properties = myResource.adaptTo(ModifiableValueMap.class); properties.remove("title"); resourceResolver.commit();

 

Kiran_Vedantam
Community Advisor
Community Advisor
January 20, 2023

Hi @dh54220 

 

Quick question: Why do you need to delete a node via JS? It is always recommended to do it using JAVA (BE Code) where you can manage the session / resourceresolver in an effective manner to avoid memory leaks.

 

Here are some examples:

https://www.tabnine.com/code/java/methods/javax.jcr.Node/remove

 

Hope this helps!


Thanks,
Kiran Vedantam.