Lightning Component: Add required scripts to component. scripts should be in static resources.
<ltng:require scripts="{!$Resource.ABC + '/lib/jsforce.min.js'}"/>
Controller: Authorize connection using Session_Id obtained from @AuraEnabled Apex Method or Attribute passed all the way from Visual force Page.
var getSessionIdAction = component.get("c.getSessionID"); //getSessionID - Apex method
getSessionIdAction.setCallback(this, function(response) {
var state = response.getState();
if(state === 'SUCCESS'){
var conn = new jsforce.Connection({ accessToken: response.getReturnValue() });
conn.sobject("Account").describe(function(err, meta) {
if (err) {
return console.error(err);
}
console.log('Label : ' + meta.label);
console.log('Num of Fields : ' + meta.fields.length);
meta.fields.forEach(function(field) {
console.log(field.name + ' - ' + field.label + ' - ' + field.type);
});
});
}
});
$A.enqueueAction(getSessionIdAction);
JsForce works pretty well in lightning component but Its not recommended for the case here due to costly API Calls. Hence I am going to use a simple @AuraEnabled Apex method which returns DescribeFieldResult for an object.